No Debian, qual comando retornará o arquivo com o nome de arquivo “menor” de um diretório?

1

Eu tenho um diretório contendo três arquivos, por exemplo, 5.war , 6.war e 7.war .

Qual comando retornará o arquivo com o nome de arquivo "menor" deste diretório? (Neste caso, 5.war .)

    
por Jerome Ansia 21.01.2015 / 21:54

2 respostas

3

ls classifica por nome por padrão. Se não houver diretórios para lidar com isso, faça o seguinte:

ls | head -1

Para adicionar alguma conclusão, se você tiver que se preocupar com diretórios, faça o seguinte:

ls -p | egrep -v /$ | head -1
    
por 21.01.2015 / 22:16
1

Infelizmente, ls classifica os nomes dos arquivos em ordem alfabética, o que não é correto para números. Por exemplo, 10.war será antes 2.war , o que não é o que você deseja.

Provavelmente, você pode encontrar uma ferramenta de classificação mais inteligente do google, mas na falta disso eu sugiro:

  1. Se os seus arquivos são alfabéticos, a solução da @Hyppy é perfeita para você.
  2. Se forem numéricos, em vez de head -1 , sugiro uma classificação numérica: ls|sort -n|head -1
  3. Se houvesse ambos, você teria que encontrar alguma alternativa (no seu lugar, eu pesquisei uma ferramenta de classificação mais inteligente).
por 22.01.2015 / 10:22

Tags