Adakah ide untuk membuat cadangan struktur direktori yang ada beberapa file dan / atau direktori di mana Anda tidak memiliki izin untuk membaca? Saya ingin mengabaikannya saja, tanpa cadangan (tar? Jar?) Mogok.
sumber
Adakah ide untuk membuat cadangan struktur direktori yang ada beberapa file dan / atau direktori di mana Anda tidak memiliki izin untuk membaca? Saya ingin mengabaikannya saja, tanpa cadangan (tar? Jar?) Mogok.
Gnu tar memiliki opsi --ignore-failed-read
yang melakukan hal itu.
Jika Anda tidak menggunakan tar GNU, Anda bisa membuat daftar file untuk dicadangkan, atau daftar file untuk dikecualikan. GNU find memiliki -readable
predikat yang menguji apakah Anda telah membaca izin pada file. Dengan versi lain dari pencarian, untuk bertahan find
sendiri, Anda harus memperkirakan ini dengan izin file ( -perm
) dan kepemilikan ( -user
, group
), yang membuatnya sulit untuk mengatasi grup, ACL, dll. Anda bisa mendapatkan tes yang tepat dengan menelepon program eksternal atau builtin shell test
. Berikut ini sebuah contoh dengan asumsi Anda tar
memiliki opsi -X
untuk membaca daftar nama file yang dipisahkan oleh baris baru (nama file yang mengandung baris baru dilewati, untuk menghindari masalah penguraian):
find . ! -name '*
*' -exec sh -c 'for x; do [ -r "$x" ] || printf "%s\\n" "$x"; done' _ {} |
tar -cf backup.tar -X - .
Jika Anda tidak memiliki baris baru di jalur, Anda dapat melakukan ini:
Ini mungkin terbatas pada GNU
find
dantar
dan mungkin tidak bekerja dengan sistem file tertentu (NFS, FUSE). Jika ada atau mungkin baris baru maka gunakan-print0
sebagai ganti-print
untukfind
dan tambahkan--null
untuktar
.sumber