
我一直在嘗試 SU 的幾種方法,但我無法做到這一點:我有一個資料夾(例如:/var/www/tmp/),其中包含多個檔案和目錄。我想刪除此目錄中的所有檔案和資料夾,除了 /var/www/tmp 中的隱藏檔案之外,我該怎麼做?
謝謝!
編輯:要明確的是,我想在 cronjob 中使用它
答案1
find /var/www/tmp -mindepth 1 -maxdepth 1 ! -name ".*" -exec rm -r -- {} +
將尋找最大(和最小)深度為 1 的檔案(即直接位於給定目錄中的檔案)不是以句點開頭並rm -r
以匹配項作為參數執行。
先用簡單的迴聲或其他東西嘗試一下,以免搬起石頭砸自己的腳,然後你才能確切地了解它是如何為你工作的。
這解決了您有關保留所有隱藏檔案的問題。您的主題有點不同,但 find 命令很容易修改為僅忽略名為.gitignore
.
答案2
除非你設定了 shell 選項dotglob
,否則cd /var/www/tmp; rm -rf *
會做你想做的事