rsnapshot: 読み取り専用ディレクトリを含むツリーからすべてのファイルを削除する方法

rsnapshot: 読み取り専用ディレクトリを含むツリーからすべてのファイルを削除する方法

読み取り専用ディレクトリを含むツリーからファイルを削除できないことがわかりましたrm -f。これを行うための代替コマンドはありますか? 削除は rnapshot によってトリガーされるため、「cmd_rm」に別の値を指定することを考えました。

背景:rnapshotフォルダー _delete.XXXXX を削除するときに、多くのエラー「権限が拒否されました」が発生する を使用しています。エラーは、読み取り専用ディレクトリ内のファイルで発生します。これらのディレクトリは git-annex によって自動的に作成されたため、書き込み権限を単純に付与することはできません。

例:

読み取り専用ディレクトリに、書き込み権限が異なる 2 つのファイルを設定します。

$ mkdir mydir
$ mydir/test1 をタッチします
$ mydir/test2 をタッチします
$ chmod aw mydir/test1
$ chmod aw mydir/

次のものを取り除いてみてください:

$ rm -r mydir/
rm: 書き込み禁止のディレクトリ 'mydir' に移動しますか? y
rm: 書き込み保護された通常の空のファイル 'mydir/test1' を削除しますか? y
rm: 'mydir/test1' を削除できません: 権限が拒否されました
rm: 'mydir/test2' を削除できません: 権限が拒否されました

ファイルを直接削除することさえできません:

$ rm -rf mydir/test2
rm: 'mydir/test2' を削除できません: 権限が拒否されました

削除する前に読み取り専用ディレクトリを検索し、書き込み可能にすると、次のことが機能します。

(/path/to/remove を検索 -type d -not -writable | xargs chmod u+w) && rm -rf /path/to/remove

しかし、このコマンドは、かなり単純なタスクに非常に複雑なようです。これが本当に唯一の解決策でしょうか? どうすれば rsnapshot にそのようなことを実行させることができるのでしょうか?

答え1

コメントできないのでここに書きます。

私の知る限り、読み取り専用は読み取り専用を意味します。読み取り書き込みではありません。

ディレクトリを読み取り書き込みモードでマウントする必要があると思います。

関連情報