読み取る権限がないファイルやディレクトリがいくつかあるディレクトリ構造をバックアップする方法はありますか?バックアップ(tar?jar?)がクラッシュすることなく、それらを無視したいと思います。
Gnu tarには、まさにそれを行うオプション_--ignore-failed-read
_があります。
GNU tarを使用していない場合は、バックアップするファイルのリスト、または除外するファイルのリストを生成できます。GNU find hasファイルに対する読み取り権限があるかどうかをテストする_-readable
_述語。他のバージョンのfindでは、find
だけを維持するには、ファイル権限(_-perm
_)と所有権(_-user
_、group
)。これにより、グループやACLなどの処理が困難になります。外部プログラムまたはシェル組み込みのtest
。これは、tar
にオプション_-X
_があり、除外するファイル名の新しい行で区切られたリストを読み取ると仮定した例です(新しい行を含むファイル名は、解析の問題を回避するためにスキップされます)。
_find . ! -name '*
*' -exec sh -c 'for x; do [ -r "$x" ] || printf "%s\\n" "$x"; done' _ {} |
tar -cf backup.tar -X - .
_
パスに改行がない場合は、次のようにすることができます。
find . -type f -readable -print | tar cf test.tar -T -
これはGNU find
およびtar
に制限される場合があり、特定のファイルシステム(NFS、Fuse)では機能しない場合があります。改行がある場合またはある場合があります。使用する -print0
の代わりに -print
for find
and add --null
for tar
。