rm -rfにrootまたはchmodがないディレクトリに対するw権限がありません。

rm -rfにrootまたはchmodがないディレクトリに対するw権限がありません。

recursionを使用してディレクトリを削除しようとしていますが、rm -rf一部の内部ディレクトリに権限が設定されていないため失敗しますw。私はこの問題を解決する方法を知っていますchmod。ただし、これにはディレクトリ全体に対して2回の反復が必要であるため、速度が遅くなる可能性があります。
これらのディレクトリを一度に削除する方法はありますか? (自分に十分な権限を付与するのに十分な権限があると仮定)
sudoはオプションではありません(そのコンピュータの制限されたユーザーとして)。

ベストアンサー1

rsync空の仮想ディレクトリを使用するのは問題ありません。
mkdir empty; rsync -r --delete empty/ targetdir/; rmdir empty targetdir
10回の繰り返しテストを含む簡単な例では、10〜14秒(14は異常値、他のすべての値は10〜11秒かかります)
chmod -R u+w targetdir && rm -rf targetdir19〜25秒かかります
find targetdir -type d -exec chmod 755 {} \; && rm -rf targetdir12秒〜16秒かかりますが、より複雑なフォルダ構造のため、rsyncよりも悪化する可能性があります。

おすすめ記事