taren sí mismo no puede hacer esto, por lo que debe crearlo a partir de una lista ordenada correctamente. En principio, podría usar tarla -Topción 's' , pero no hay forma de especificar que los nombres de archivo en esa lista se terminen con NUL. Entonces, si tiene nombres de archivo con nuevas líneas (lo que está permitido), esto simplemente se romperá.
Una mejor opción es usarlo cpiopara generar los archivos, ya que acepta una lista de nombres de archivo terminados en NUL y puede generar archivos tar.
Si su tarcomando fuera:
tar cvf /somedir/all.tar .
Luego, para que esto se ordene por nombre, debe hacer (suponiendo que GNU find y cpio):
find . -type f -print0 | sort -z | \
cpio --create --null --format=ustar -O /somedir/all.tar
Sin embargo, esto tiene la desventaja de que los subdirectorios se colocan entre los nombres de archivo. Puede hacer trucos con finds -printf0 especificando el directorio y la información de profundidad y ordenando, sort -npero eso también influye en cómo se ordenan los archivos con números dentro de un directorio.
Si lo anterior no es satisfactorio, probablemente podría usar un pequeño programa basado en Python os.walk()para generar el orden que desee con control total (profundidad primero, basada en la extensión, etc.), pero si sigue esa ruta, también podría abandonar cpioy escribir el tararchivo con el tarfilemódulo de Python .