Find
find
刪除了頂級目錄和內容
我跑了
/bin/find /home/user/myfiles \! -name '.htaccess' -exec rm -r {} \;
如果不存在,它會刪除目錄中的所有內容和
myfiles
目錄myfiles
本身。.htaccess
我做錯了什麼?
如果這是 GNU find 或其他一些版本的 find(如 macOS Monterey),它同時具有 -delete 和 -mindepth ,所以我將從那裡開始。
/bin/find /home/user/myfiles -mindepth 1 -delete
如果它是其他一些發現,我會嘗試指定路徑更像這樣。:
/bin/find /home/user/myfiles/*
which globs 您想要保留原樣的目錄下的內容,並在該目錄下進行查找。
使用諸如 find 之類的工具是一個好主意,它本質上是發現自己的行動論據,以首先使用非破壞性的方式執行它們,例如簡單地列出事物或在刪除它們之前對它們執行 ls 操作。
find
在起始目錄本身開始搜尋。也就是說,如果你有foo/ a b
你跑
find foo
你會得到
foo foo/a foo/b
因此,當您這樣做時
-exec -r {} \;
,它甚至會刪除起始目錄。您可以做的是告訴find
不要包含起始目錄:find /home/user/myfiles ! -path /home/user/myfiles -exec rm -r {} \;