comando para imprimir a lista de pastas de várias unidades

comando para imprimir a lista de pastas de várias unidades

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

Tente usarfindcomsort:

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. ( 5o caractere não vem antes 1do caractere, portanto 5a string não pode vir antes 14da string - 05, entretanto, irá.)


Explicação:

findé um programa para encontrar coisas.

  • -type findica 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íamos sda/Alfa/File 1, mas usando -printf '%f\n', dizemos findpara imprimir apenas o nome do arquivo.

informação relacionada