
我想為盒子上的每個用戶刪除 Awstats 的特定設定檔。刪除它們的最佳方法是什麼?
所有文件都位於/home
以下結構:
/home/{username1}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
/home/{username1}/domains/{domain2}/public_html/awstats/.data/awstats.{domain2}.conf
/home/{username2}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
某些/home/{username}/domains/
資料夾具有多個網域子資料夾。
答案1
你有沒有嘗試過
rm /home/*/domains/*/public_html/awstats/.data/awstats.*.conf
?
警告:如果有一個檔案的名稱類似
/home/phred/domains/sci-fi/public_html/awstats/.data/awstats.fantasy.conf
即,兩次出現{domain1}
不匹配,那麼上面的指令也會將其刪除。那是問題嗎?
PS 除非驗證配對的兩次出現{domain1}
是您所問的問題,或者我還缺少其他內容,否則這個問題與正規表示式(regex)無關。當*
、?
和[
(帶有匹配的]
)在 shell 命令列上使用時,它們被稱為通配符。
答案2
在/home
運行以下命令
find . -name 'awstats*conf' | xargs rm
在透過管道傳輸結果以自行運行之前,xargs
請find . -name 'awstas*.conf
驗證它是否僅列出您要刪除的檔案。xargs rm
僅在確認後才透過管道傳輸。
如上find
所示使用時將遞歸尋找與指定的正規表示式相符的檔案。有關更多信息,請查看 find 和 xargs 的手冊頁。