有人问 rm -rf 无法删除子目录中特定文件的问题,这里总结一下
Linux 为什么 用rm -rf 无法递归删除子目录中的特定文件
比如 如下的文件目录 111 是文件. 1 是文件夹
.
└── 1
├── 1
│ ├── 1
│ └── 111
└── 111
我想要删除 111
rm -rf 111 结果值删除了当前目录下的111. 而没有把所有的111 删除掉.
原因是:
这里的 -r 是递归的意思, 但是是递归删除文件夹里面的子目录及所有的文件, 他没有搜索特定文件的意思,所以无法删除子目录中的特定文件
正确的方法
find . -name "111" -exec rm -f {} \;
或者
find . -name "111" | xargs rm -f |
关于xargs 和 exec的命令用法,请参考这篇文章
http://blog.csdn.net/arganzheng/article/details/6260720