遞歸刪除但保留 .gitignore 文件

遞歸刪除但保留 .gitignore 文件

我一直在嘗試 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 *會做你想做的事

相關內容