我有以下代码:
find ./ -iname '*phpmyadmin' -exec rm -rf {} \;
它删除了一个名为 的目录phpmyadmin
,但它才不是删除一个名为phpMyAdmin-Version-XYZ.zip
即使我删除了-rf
,它仍然不会删除它(可能是因为 -iname 的第二个问题不影响大小写)。
- 有没有办法删除单个 rm(文件、目录、软链接)中的任何 inode?
- 为什么添加
-iname
没有效果?
注意:我在 中没有找到“删除任何 inode”参数man rm
。
答案1
phpmyadmin
问题是您正在匹配以(结尾的文件不区分大小写)通过使用模式*phpmyadmin
。要获取包含该字符串的任何文件phpmyadmin
(不区分大小写),请使用-iname '*phpmyadmin*'
:
find ./ -iname '*phpmyadmin*' -exec rm -rf {} \;
也许在删除之前获取匹配的文件是明智的:
find ./ -iname '*phpmyadmin*'
为了回答你的第一个问题,用户空间中没有选项rm
来处理索引节点。
答案2
find ./ -iname '*phpmyadmin*' -exec /usr/lib/klibc/bin/nuke {} +
即使有人创建了 -phpmyadmin 目录,这也有效。