不知你是否想过在Linux命令行上,如何实现删除除了某个文件之外的所有文件?
如abc文件夹下有a、b、c三个文件,如何一行命令删除b和c,不删除a。有位童鞋在工作经常有此需求,本文将介绍其他童鞋提供的实现方法。
其中rm -f !(a) 最为方便。如果保留a和b,可以运行rm -f !(a|b)来实现。
不过一般bash中运行后会提示
“-bash: !: event not found ” 可以通过运行shopt -s extgolb来解决。如下:
[root@localhost /]# mkdir abc
[root@localhost /]# cd abc
[root@localhost abc]# touch a b c
[root@localhost abc]# ls
a b c
[root@localhost abc]# rm -f !(a)
-bash: !: event not found
[root@localhost abc]# shopt -s extglob
[root@localhost abc]# rm -f !(a)
[root@localhost abc]# ls
a
[root@localhost abc]# touch b c d
[root@localhost abc]# rm -f !(a|b)
[root@localhost abc]# ls
a b
另外也可以使用下面的方法:
[root@localhost abc]# ls
a b c
[root@localhost abc]# ls |grep -v a |xargs rm -f
[root@localhost abc]# ls
a
相关推荐
比如一个目录下有1,2,3,4,5这五个文件,现在我需要删除除了2以外的所有文件,那么我可以使用 find . ! -name 2 -exec rm -f {} \; 当然你还可以配合着 -maxdepth 来更精准的删除了. 下面演示删除的范围仅限于当前...
我们可以利用它来删除除特定文件类型之外的所有文件: ```bash cd ~/Downloads find . -type f -not \( -name '*.zip' -o -name '*.iso' \) -delete ``` 这里,`find . -type f`查找所有普通文件,`-not`否定后面...
最后,了解如何在Linux中进行磁盘清理和空间管理,包括清理临时文件目录(如/tmp),定期检查日志文件的大小,并适当地进行归档和删除,这些都有助于避免磁盘空间不足的情况发生。在某些情况下,重新挂载文件系统或...
- 使用`stat`命令查看某个文件的inode信息:`stat example.txt` - 使用`ls -i`命令显示文件名及其inode号码:`ls -i example.txt` **查看inode资源情况:** - 使用`df -i`命令查看硬盘分区的inode总数及已使用的...
除了常规的权限位之外,Linux还提供了一些特殊的权限位,包括suid、sgid和粘贴位(sticky bit)。 - **suid (Set User ID)**: 当文件被以suid权限运行时,进程会获得文件所有者的权限。这常用于需要提升权限执行的...
- `-A`: 显示除`.`和`..`之外的所有文件及目录。 - `-t`: 按时间排序。 - `-R`: 递归列出目录中的所有文件。 **示例**: - `ls`: 列出当前目录下的文件和目录。 - `ls -l`: 以长格式列出当前目录下的文件和目录...
一.Linux的文件系统结构.....................................................................................................6 二. 文件类型................................................................
- **理解文件系统树**:Linux的文件系统采用树状结构,其中 `/` 表示根目录,所有其他文件和目录都作为子节点存在。理解这种层次结构对于高效地导航和管理文件至关重要。 - **当前工作目录**:当前工作目录是指用户...
- 允许匿名用户执行除上传和创建目录之外的操作,如删除或重命名文件/目录,默认为`NO`。 - **chown_uploads=YES/NO** - 是否更改匿名用户上传文件的所有者,默认为`NO`。 - **chown_username=username** - ...
它与目录缓存(dcache)相互作用,以优化文件和目录的操作。 **3.2 Filesystem Registration/Unregistration** VFS支持多种文件系统,如ext2、ext3、FAT等。文件系统的注册和注销是由特定的函数完成的,这些函数...
除了通过crontab文件来配置任务之外,还可以通过特定目录的方式执行定时任务。这些目录包括: - `/etc/cron.hourly`:每小时执行一次。 - `/etc/cron.daily`:每天执行一次。 - `/etc/cron.weekly`:每周执行一次。...
- **手动删除**:通过Windows资源管理器或者Linux的`rm`命令,逐个或批量删除目录下的`.svn`文件夹。但这需要小心操作,防止误删其他重要文件。 - **使用脚本**:提供名为“清楚当前目录下的.svn信息.bat”的...
ACL,即访问控制列表(Access Control List),是在传统的Unix/Linux文件系统权限管理(UGO:用户、组和其他)之外提供更细粒度控制的一种机制。随着网络安全和数据保护的需求增加,ACL成为了现代操作系统中不可或缺...
除了使用`useradd`命令创建用户时指定属性之外,还可以使用`usermod`命令来修改现有用户的属性,如修改用户的组、shell、家目录等。 **示例:** 1. 修改用户所属的组: ```bash usermod -g nobody floatboat ```...
- **-pv**: 除了创建目录之外,还提供详细的输出信息,显示每一步的操作。 #### 6. cp命令 `cp`命令用于复制文件或目录。 - **-p**: 复制文件的同时保持文件的元数据(如权限、时间戳等)不变。 - **-v**: 显示...
- **其他文件操作**: 除了`touch`之外,还有许多其他的文件操作命令,比如`mkdir`用于创建目录,`rm`用于删除文件或目录(使用`-r`参数递归删除目录,`-f`参数强制删除文件)。 #### 二、`volatile`关键字与编译器...