假设当前目录下有以下文件:
想要删除1.txt以外的文件和目录,第一种可行的方法如下:
先把1.txt以外的文件找出来,然后删除。
cxdn1013@cxdn1013-Inspiron-5439:~/0202$ ls | grep -v "1.txt"
2.txt
delete.sh
downloads
cxdn1013@cxdn1013-Inspiron-5439:~/0202$ ls | grep -v "1.txt" | xargs rm -rf
cxdn1013@cxdn1013-Inspiron-5439:~/0202$ ls
1.txt
另一种可行的方法:开启反选功能
cxdn1013@cxdn1013-Inspiron-5439:~/0202$ ls
1.txt 2.txt delete.sh downloads
cxdn1013@cxdn1013-Inspiron-5439:~/0202$ shopt -s extglob
cxdn1013@cxdn1013-Inspiron-5439:~/0202$ rm -rf !(1.txt)
cxdn1013@cxdn1013-Inspiron-5439:~/0202$ ls
1.txt