Permissions

rm -rf 在沒有 root 或 chmod 的目錄上缺少 w 權限

  • July 26, 2020

我正在嘗試使用 遞歸刪除目錄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

引用自:https://unix.stackexchange.com/questions/599708