我有一个目录,由另一个用户填充,我负责维护它。我想删除其中的所有内容,只保留 2 个具有特定名称的文件。可以这样做吗?rm
或者我应该这样做吗:
cp aaa/a ./a && cp aaa/b ./b && rm -rf aaa/* && mv ./a aaa/a && mv ./b aaa/b
aaa
目录在哪里,我想要保留的文件是什么a,b
,其中还有(至少可能有)其他文件/目录。
有没有更好(且更短)的方法?
答案1
使用 bash 扩展的 glob,给出
$ tree aaa
aaa
├── a
├── b
├── c
├── d
├── e
└── subdir
然后
rm -rf aaa/!(a|b)
树叶
$ tree aaa
aaa
├── a
└── b
0 directories, 2 files