Encontre a última cópia do mesmo arquivo na estrutura de pastas

5

Eu preciso pegar o caminho do foo.txt em uma estrutura de pastas. Existem vários arquivos foo.txt nessa estrutura, mas eu preciso de um automatizado para encontrar o mais recente. Sugestões?

    
por Kevin Schneider 26.12.2014 / 19:20

3 respostas

2

find . -iname foo.txt -exec ls -t "{}" \+ | head -n 1
    
por 26.12.2014 / 19:28
2

Este é um caso para qualificadores glob do zsh se eu já vi um.

cat **/foo.txt(om[1])
  • om ordena os arquivos aumentando a idade (ou seja, pelo tempo de modificação, o mais recente primeiro).
  • [1] seleciona apenas a primeira correspondência.

Se você está invocando isso de outro shell e quer usar o nome do arquivo, você pode usar

latest_foo=$(zsh -c 'print -r -- **/foo.txt(om[1])')

mas você também pode escrever todo o seu script em zsh.

    
por 27.12.2014 / 00:08
1
 find . -iname foo.txt -printf '%CYmd %p%f' | sort -n -t ' ' -k 2 | head -n 1
    
por 26.12.2014 / 19:36