Se você não tem muitos diretórios totais, você pode forçar o find
a percorrer os caminhos na ordem, dando a todos eles na linha de comando:
shopt -s globstar
find **/ -name '*.tex' -exec cat {} \; > blub.txt
(Usando a sintaxe bash para habilitar o **
glob recursivo). A glob expande-se em ordem naturalmente ordenada, de modo que os anos seriam classificados primeiro, depois cada um dos meses numericamente pré-fixados se classificaria dentro de cada ano. A barra final pede ao bash para retornar apenas diretórios, deixando find
localizar os arquivos.
Como alternativa, se você tiver uma lista de anos como subdiretórios, poderá passar por cima disso:
for year in *
do
find "$year"/* -name '*.tex' -exec cat {} \;
done > blub.txt
Isso expande os 12 meses de cada ano em cada loop, forçando novamente find
a processá-los na ordem.