shell脚本从linux中的目录中删除文件和子目录

时间:2016-06-19 12:22:07

标签: shell find

我想删除使用指定文件创建的所有文件和子目录。我目前正在使用该命令删除文件和目录

find . ! -name file.txt -type d -exec rm -r {} +    #this is for  sub directories
find . ! -name file.txt -type f -exec rm -f {} +    #this is for files

当我运行这些命令两次时,它会删除所有文件和子目录,但我想删除创建的所有文件和目录,一次排序一个文件。任何帮助都非常值得赞赏。 问候 Jitendra

1 个答案:

答案 0 :(得分:0)

GNU find 可以直接删除文件和目录:

find ! -name file.txt -delete

它会提供错误消息,因为它无法删除最多file.txt的目录,但其他所有内容仍将被删除。

如果您想保留文件file1.txtfile2.txtfile3.txt,请链接以下条件:

find ! \( -name file1.txt -o -name file2.txt -o -name file3.txt \) -delete