我想删除目录中的一些文件,但是“.gitignore”文件,我尝试了这个命令,但是得到一个错误

[vagrant@lw2 lw2]$ find ./web/assets/* ! -name '.gitignore' | xargs rm -rf
find: `./web/assets/*': No such file or directory

我用“.”字符再试一次,但出现另一个错误:
[vagrant@lw2 lw2]$ find ./web/assets/. ! -name '.gitignore' | xargs rm -rf
 rm: cannot remove directory: `./web/assets/.'

请告诉我这些命令有什么问题
谢谢您!

最佳答案

尝试此操作(对于文件):

[vagrant@lw2 lw2]$ find /full/path/to/directory/ -type f ! -iname ".gitignore" -exec rm -fv {} \;

或者这个(对于目录):
[vagrant@lw2 lw2]$ find /full/path/to/directory/ -type d ! -iname ".gitignore" -exec rm -fv {} \;

注意:最好先使用临时目录测试命令,然后运行main命令。

关于linux - 用排除文件删除bash中的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36564310/

10-12 22:53