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 .