我有该目录var/www/html
,在它下面有一些网站目录(比如大约 5 个)。
所有 5 个网站目录都有一个内部路径dir0/dir1
。
如何在一个命令中批量删除该路径内的所有 inode(除了名为 的 inode 之外he_IL.mo
)?
我询问一个命令,因为我有以下 3 个有效命令块,但我想尽可能少地使用此命令:
(
find /var/www/html/*/dir0/dir1/ ! -name 'he_IL.mo' -type f -exec rm -f {} +
find /var/www/html/*/dir0/dir1/ -type f -exec rm -d {} +
find /var/www/html/*/dir0/dir1/ -type f -exec rm -l {} +
)
- 如果我这样做
*
而不是f
我得到“应该只包含一个字母”。 - 如果我这样做
i
而不是f
,我会得到一个“未知参数”。
答案1
使用一个命令的方法是-type
从命令中删除 , 。然后我们得到:
find /var/www/html/*/dir0/dir1/ ! -name 'he_IL.mo' -exec rm -f {} +
请注意,它也不会删除具有该名称的目录和软链接he_IL.mo
,但如果可以的话,请使用它。