好久没有写东西了.通常我们通过rm -rf  *可以直接强制删除当前文件夹里面的所有内容,但是有些时候我们需要保留一些文件,就比如,网站转移更新需要保留程序压缩包等就需要用到在linux centos环境下需要删除除某(多)个文件之外的所有文件的功能了.具体方法如下: rm -f  !(a) 如果保留a和b,可以运行rm -f !(a|b)来实现,不过一般bash中运行后会提示 “-bash: !: event not found ” 可以通过运行:shopt -s extglob 来解决. s…
原文: https://www.jb51.net/article/99319.htm 比如一个目录下有1,2,3,4,5这五个文件,现在我需要删除除了2以外的所有文件,那么我可以使用 find . ! -name 2 -exec rm -f {} \; 当然你还可以配合着 -maxdepth 来更精准的删除了. 下面演示删除的范围仅限于当前目录. find . -maxdepth 1 ! -name 2 -exec rm -f {} \; find . -mindepth 3 -maxdepth…
例如:删除当前目录下除了.tar.gz和.py结尾的其他文件 shopt -s extglob rm -rf !(*.py|*.tar.gz)…
#!/bin/bash #!/bin/bash #exact all log files #计算log文件个数log_number=`ls *.log |grep log -c` #当log文件数大于0时遍历删除文件中的文件夹if [ $log_number -gt 0 ];then list_log_files=$(ls *.log) #Traverse to delete files for log_file in $list_log_files do #delete all log fil…
file_dir=` -maxdepth - type d`for dir in $file_dirdo file_name=`basename $dir` if [ $file_name != "目标文件名" ];then rm -rf $dir if [ $? != 0 ];then echo "未删除成功!" exit -2 fi fidone…
一.Linux下删除文件和文件夹常用命令如下: 删除文件: rm file 删除文件夹: rm -rf dir 需要注意的是, rmdir 只能够删除 空文件夹 . 二.删除制定文件(夹)之外的所有文件呢? 1.方法1,比较麻烦的做法是: 复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来. mv keep ../ #保留文件(夹) keep rm -rf * #删除当前文件夹里的所有文件 mv ../keep ./ #将原来的东西移动回来 2.方法2,需要在当前文件…
Linux反选删除文件 最简单的方法是 # shopt -s extglob      (打开extglob模式) # rm -fr !(file1)  如果是多个要排除的,可以这样: # rm -rf !(file1|file2)  Linuxrm删除指定文件外的其他文件方法汇总 一.Linux下删除文件和文件夹常用命令如下: 删除文件: rm file删除文件夹: rm -rf dir需要注意的是, rmdir 只能够删除 空文件夹. 二.删除制定文件(夹)之外的所有文件呢?1.方法1,比较…
1.列出排除hns_dsaf_mac.c文件之外的.c文件 ls drivers/net/ethernet/hisilicon/hns/*.c |egrep -v '(hns_dsaf_mac.c)' 2.删除hns_dsaf_mac.c文件之外的.c文件 rm `ls drivers/net/ethernet/hisilicon/hns/*.c |egrep -v '(hns_dsaf_mac.c)'`…
今天碰到要删除指定文件(夹)外的其他文件的问题.网上查到的方法是这样的 需要在当前文件夹中进行: rm -rf !(keep) #删除keep文件之外的所有文件 rm -rf !(keep1|keep2) #删除keep1和keep2文件之外的所有文件 在Ubuntu14.04下有个大坑,keep1和keep2与“|"之间千万不能留空格,就是!(keep1 | keep2).这样的话会删除当前文件夹内的所有文件. 应该这样写(keep1|keep2). 具体原因未知,等慢慢寻找.以后再来补充.…
例如:  删除当前文件夹下    .c和 .h    文件以外的文件 rm -f   `ls ./ | egrep -v "(.c$|.h$)"` 1. ls 列出所有文件; 2. egrep -v   查找所有不包含  .c和 .h 的文件:  .c$ -- 以.c 结尾的文件 3. rm -f 强制删除符合条件的文件 egrep  -- 查询 多个 关键字; 除了错误消息和使用消息不同以及 -s 标志的功能不同之外,  egrep 命令与 grep 命令带 -E 标志是一样的. h…