Lista o último arquivo de vários subdiretórios

1

Eu tenho vários subdiretórios (que são nomeados usando GUIDs), que contêm arquivos de resultados de simulações de computador que tenho executado. Os arquivos são todos nomeados da seguinte maneira: hydro_configuration_xxxx.xyz, onde xxxx é um número de quatro dígitos de 0000 para cima; o último arquivo tem o maior número de quatro dígitos. Gostaria de poder listar o arquivo mais recente em cada subdiretório, junto com o diretório em que ele está.

Assim, por exemplo, dado o subdiretório fc86783b-bcc5-4456-8964-049682ee81aa contendo arquivos hydro_configuration_0000.xyz para hydro_configuration_0123.xyz e o diretório e608273d-35bd-442c-9de1-0ec184aa0d95 contendo os arquivos hydro_configuration_0000.xyz para hydro_configuration_3564. xyz, preciso de um comando que produza a saída:

./fc86783b-bcc5-4456-8964-049682ee81aa/hydro_configuration_0123.xyz 
./e608273d-35bd-442c-9de1-0ec184aa0d95/hydro_configuration_3564.xyz
    
por endian 12.10.2011 / 14:10

1 resposta

2

Crie o script bash latestfile.sh com o seguinte conteúdo:

#!/bin/bash
ls -1tr "$1" | tail -n1

Execute chmod +x latestfile.sh para torná-lo executável.

Em seguida, execute o seguinte comando:

find test -mindepth 1 -type d -name "hydro_configuration_*" -printf "%p/" -a -exec ./latestfile.sh {} \;

Isto irá encontrar todos os diretórios correspondentes ao padrão e imprimir seus nomes seguidos por um / , seguido pelo nome do arquivo mais recente lá existente.

    
por 12.10.2011 / 14:43

Tags