Permissions
rm -rf 在沒有 root 或 chmod 的目錄上缺少 w 權限
我正在嘗試使用 遞歸刪除目錄
rm -rf
,但這失敗了,因為某些內部目錄沒有w
權限集。我知道如何用chmod
. 但是,這需要對整個目錄進行兩次迭代,這可能會很慢。有沒有辦法一次性刪除這樣的目錄?(假設你有足夠的權限給自己足夠的權限)
sudo
不是一個選項(有問題的電腦上的有限使用者)。
rsync
使用空的虛擬目錄似乎很好:
mkdir empty; rsync -r --delete empty/ targetdir/; rmdir empty targetdir
對一個簡單的範例進行 10 次重複測試,這需要 10-14 秒(14 是一個異常值,所有其他都需要 10 或 11 秒),
而
chmod -R u+w targetdir && rm -rf targetdir
需要 19-25 秒,
find targetdir -type d -exec chmod 755 {} \; && rm -rf targetdir
而 需要 12 -16s 但可能會比具有更複雜文件夾結構的 rsync 惡化更多。
find directory -type d -exec chmod 775 {} \; rm -rf directory