tarchính nó không thể làm điều này, vì vậy bạn phải tạo nó từ một danh sách được sắp xếp chính xác. Về nguyên tắc, sau đó bạn có thể sử dụng tùy chọn tarcủa mình -T, nhưng không có cách nào để xác định rằng tên tệp trong danh sách đó phải được chấm dứt NUL. Vì vậy, nếu bạn có bất kỳ tên tệp nào có dòng mới trong đó (được cho phép) thì điều này sẽ bị hỏng.
Tùy chọn tốt hơn là sử dụng cpiođể tạo các tệp vì chấp nhận danh sách tên tệp đã kết thúc NUL và có thể tạo tệp tar.
Nếu tarlệnh của bạn sẽ là:
tar cvf /somedir/all.tar .
Sau đó, để điều này được sắp xếp theo tên bạn sẽ phải làm (giả sử GNU find và cpio):
find . -type f -print0 | sort -z | \
cpio --create --null --format=ustar -O /somedir/all.tar
Điều này có nhược điểm mặc dù các thư mục con được đặt ở giữa tên tệp. Bạn có thể thực hiện các thủ thuật với finds -printf0 chỉ định thư mục và thông tin độ sâu và sắp xếp với sort -nnhưng điều đó cũng ảnh hưởng đến cách các tệp có số được sắp xếp trong một thư mục.
Nếu những điều trên không thỏa đáng, bạn có thể sử dụng một chương trình python nhỏ dựa trên os.walk()để tạo ra thứ tự bạn muốn với toàn quyền kiểm soát (độ sâu trước, dựa trên extenion, v.v.), nhưng nếu bạn đi theo con đường đó, bạn cũng có thể bỏ cpiovà viết ra tartập tin với tarfilemô-đun của python .