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.
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.
Jawaban:
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:
find . -type f -readable -print | tar cf test.tar -T -
Ini mungkin terbatas pada GNU find
dan tar
dan mungkin tidak bekerja dengan sistem file tertentu (NFS, FUSE). Jika ada atau mungkin baris baru maka gunakan -print0
sebagai ganti -print
untuk find
dan tambahkan --null
untuk tar
.