tardi per sé non può farlo, quindi è necessario crearlo da un elenco ordinato correttamente. In linea di principio è quindi possibile utilizzare tarl' -Topzione, ma non è possibile specificare che i nomi dei file in tale elenco debbano essere chiusi NUL. Quindi, se hai nomi di file con nuove righe (che è consentito), questo si interromperà.
Un'opzione migliore è utilizzare cpioper generare i file in quanto accetta un elenco di nomi di file terminato NUL e può generare file tar.
Se il tuo tarcomando fosse:
tar cvf /somedir/all.tar .
Quindi per ordinarlo in base al nome, dovresti fare (supponendo che GNU find e cpio):
find . -type f -print0 | sort -z | \
cpio --create --null --format=ustar -O /somedir/all.tar
Questo ha lo svantaggio però che le sottodirectory sono inserite tra i nomi dei file. Puoi fare trucchi con finds -printf0 specificando la directory e le informazioni sulla profondità e l'ordinamento, sort -nma ciò influenza anche il modo in cui i file con i numeri sono ordinati all'interno di una directory.
Se quanto sopra non è soddisfacente, potresti probabilmente utilizzare un piccolo programma Python basato su os.walk()per generare l'ordinamento desiderato con il controllo completo (profondità prima, basata sull'estensione, ecc.), Ma se segui quel percorso potresti anche rilasciare cpioe scrivere il tarfile con il tarfilemodulo di Python .