読み取り専用ディレクトリを含むツリーからファイルを削除できないことがわかりました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
コメントできないのでここに書きます。
私の知る限り、読み取り専用は読み取り専用を意味します。読み取り書き込みではありません。
ディレクトリを読み取り書き込みモードでマウントする必要があると思います。