tar
itu sendiri tidak dapat melakukan ini, jadi Anda harus membuatnya dari daftar yang dipesan dengan benar. Pada prinsipnya Anda kemudian dapat menggunakan tar
's -T
pilihan, tetapi tidak ada cara untuk menentukan bahwa nama file dalam daftar yang harus NUL dihentikan. Jadi, jika Anda memiliki nama file dengan baris baru di dalamnya (yang diizinkan) ini akan rusak.
Opsi yang lebih baik adalah menggunakan cpio
untuk menghasilkan file karena menerima daftar nama file yang diakhiri NUL dan dapat menghasilkan file tar.
Jika tar
perintah Anda adalah:
tar cvf /somedir/all.tar .
Maka untuk ini akan diurutkan berdasarkan nama yang harus Anda lakukan (dengan asumsi GNU find and cpio):
find . -type f -print0 | sort -z | \
cpio --create --null --format=ustar -O /somedir/all.tar
Ini memiliki kekurangan meskipun subdirektori ditempatkan di antara nama file. Anda dapat melakukan trik dengan find
s -printf0 menentukan direktori dan informasi kedalaman dan menyortir dengan sort -n
tetapi itu juga mempengaruhi bagaimana file dengan angka diurutkan dalam direktori.
Jika hal di atas tidak memuaskan Anda mungkin bisa menggunakan program python kecil berdasarkan os.walk()
untuk menghasilkan pemesanan yang Anda inginkan dengan kontrol penuh (kedalaman pertama, berdasarkan extenion dll), tetapi jika Anda pergi rute itu Anda mungkin juga drop cpio
dan tuliskan tar
file dengan tarfile
modul python .