我有一个/tmp/test
目录。里面有文件和目录。其中一个目录是/tmp/test/to_be_kept
。现在我想知道如何删除除其中所有/tmp/test/to_be_kept
内容之外的所有文件和目录?谢谢
答案1
shopt -s extglob
rm -r /tmp/test/!(to_be_kept)
答案2
当它尝试重新访问已被删除的目录时,这将产生一些错误消息,您可以忽略这些错误消息:
find /tmp/test -mindepth 1 -type d -name to_be_kept -prune -o -exec rm -rf {} \;
答案3
这是一个简单的方法:
ls /tmp/test | grep -v to_be_kept | xargs rm -r
如果您还想删除隐藏内容:
ls -a /tmp/test | grep -v to_be_kept | xargs rm -r
总是先测试输出!
首先尝试一下这些,不要使用| xargs rm -r
部分!如果您获得了要删除的文件和目录的列表,您也可以应用...