Encontre o maior arquivo no diretório sem tamanho na saída

1

Eu preciso encontrar o maior arquivo

  1. Apenas um arquivo deve ser listado
  2. A pesquisa deve funcionar em determinado diretório e subdiretórios
  3. A saída deve exibir o caminho absoluto para o arquivo com nome de arquivo

    find "$PARAM" -type f | xargs ls -1S | head -n 1
    

funciona, mas me dá erros como

ls: cannot access Over: No such file or directory

    
por artsel 09.01.2014 / 11:20

1 resposta

5

Não analise ls . Deixe find fazer isso funcionar para você:

find "$PARAM" -type f -printf "%s\t%p\n" | sort -n | tail -n 1 | cut -f 2- 

Sem encontrar, podemos usar a globalização recursiva do bash:

shopt -s globstar nullglob
stat -c $'%s\t%F\t%n' ** \
| awk -F'\t' '$2 == "regular file"' \
| sort -n \
| tail -n 1 \
| cut -f 3-

O stat no OSX terá opções diferentes, mas equivalentes, para stat, e pode gerar uma string diferente para "arquivo regular".

    
por 09.01.2014 / 12:08

Tags