Você pode fazer isso usando este comando
find "$(pwd)" -type f -name "*.gz" -printf "%T@ %p\n"| sort -n | cut -d' ' -f 2 | tail -n 1
Eu quero encontrar um arquivo com um padrão específico e imprimir o arquivo mais recente que corresponde ao padrão com o caminho completo
find ../*.gz -type f -print0 | sort -nr | cut -d: -f2- | head -n 1
Como imprimo o caminho completo do mesmo?
Conforme solicitado pelos usuários ls -l
:
ls -l
drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:29 fa1caae85
drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:28 ga1c93eda
drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:28 la1cbbh05
drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:08 node_modules
drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:08 _tasks
Todas as três principais pastas contêm .gz
dos arquivos, no entanto, quero extrair o arquivo .gz
mais recente deles.
abordagem não ortodoxa:
zsh -c 'echo $PWD/**/*.gz(.om[1])'
onde
()
após *.gz
significa usar os chamados qualificadores glob, ou seja: .
considera apenas arquivos simples om
classificar por hora de modificação [1]
usa apenas o primeiro elemento Obviamente, se você já estiver usando o zsh, não precisará chamá-lo com zsh -c
.