我有一个目录 db-cache-db,/home/{USER}/public_html 下有很多目录。我知道有一种方法可以为此编写脚本,但我不知道从哪里开始或如何开始。
我尝试了以下方法,但没有成功
find /home -wholename 'db-cache-db' -exec echo "rm -rf" {} ';'
我需要使用 -type 和 -name 吗?
答案1
-wholename
与 相同-path
,并且匹配完整路径目录,例如/home/{USER}/public_html/db-cache-db
,而不仅仅是名称,例如db-cache-db
。由于您不使用通配符参数(例如*/db-cache-db
),您将永远找不到任何东西。
请首先尝试以下操作,以确保您不会意外删除超出预期的内容:
find /home -name 'db-cache-db' -type d
如果这导致您想要删除的目录,请添加实际删除的最后一个参数:
find /home -name 'db-cache-db' -type d -exec rm -rfv {} \;
答案2
这样做并不安全:
find /home -name 'db-cache-db' -type d -exec echo rm -rf {} ';'
您可能会丢失许多想要保留的目录。
find /home -name 'db-cache-db' -exec echo "rm -rf" {} ';' > /home/tmp.shl
接下来阅读其中的内容,tmp.shl,
确保一切安全。使用 find 执行您“编写”的脚本。
chmod +x /home/tmp.shl
/home/tmp.shl