我有一个/tmp/test目录。 其中我有文件和目录的混合。 其中一个目录是/tmp/test/to_be_kept 。 现在我想知道如何删除/tmp/test/to_be_kept之外的所有文件和目录以及其中的所有内容? 谢谢
shopt -s extglob rm -r /tmp/test/!(to_be_kept)
这将产生一些错误消息,当它试图重新访问已经被删除的目录时,你可以忽略它:
find /tmp/test -mindepth 1 -type d -name to_be_kept -prune -o -exec rm -rf {} \;
这是一个简单的方法:
ls /tmp/test | grep -v to_be_kept | xargs rm -r
如果你想删除隐藏也:
ls -a /tmp/test | grep -v to_be_kept | xargs rm -r
总是先testing输出!
先尝试这些没有| xargs rm -r | xargs rm -r部分! 如果你得到你想要删除的文件和目录列表,你可能也适用…