Existe um comando CLI para imprimir em ordem alfabética (mas em um único txt ou planilha) a lista de pastas contidas em diferentes discos rígidos?
Por exemplo, digamos que eu tenha esta configuração:
/sda/Alfa/File 1
/sdb/Bravo/File 5
/sdb/Bravo/File 20
/sdc/Delta/File 14
/sdc/Delta/File 11
O que eu gostaria de gerar é um arquivo TXT ou planilha onde as pastas estão listadas em ordem alfabética, algo como:
File 1
File 5
File 11
File 14
File 20
Isso é algo que posso fazer na CLI?
Responder1
find /sda /sdb /sdc -type f -printf '%f\n' | sort
Por exemplo:
$ tree sd[a-c]
sda
└── Alfa
└── File 1
sdb
└── Bravo
├── File 20
└── File 5
sdc
└── Delta
├── File 11
└── File 14
$ find sd[a-c] -type f -printf '%f\n' | sort
File 1
File 11
File 14
File 20
File 5
Observe queesseé o que normalmente se entende por ordem alfabética, mais precisamente declarada como ordem lexicográfica. ( 5
o caractere não vem antes 1
do caractere, portanto 5
a string não pode vir antes 14
da string - 05
, entretanto, irá.)
Explicação:
find
é um programa para encontrar coisas.
-type f
indica que queremos arquivos regulares e não diretórios (ou outros arquivos especiais).- A saída usual
find
é o caminho do arquivo, então obteríamossda/Alfa/File 1
, mas usando-printf '%f\n'
, dizemosfind
para imprimir apenas o nome do arquivo.