comando para imprimir lista de pastas de várias unidades

0

Existe um comando CLI para imprimir em ordem alfabética (mas em um único arquivo ou planilha) a lista de pastas contidas em diferentes discos rígidos?

Por exemplo, digamos que eu tenha essa 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 produzir é um arquivo TXT ou Spreadsheet, no qual as pastas são listadas em ordem alfabética, algo como:

File 1
File 5
File 11
File 14
File 20

Isso é algo que eu posso fazer no CLI?

    
por simple mind 23.11.2014 / 19:03

1 resposta

2

Tente usar find com sort :

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

Note que isto é o que normalmente se entende por ordem alfabética, mais precisamente declarada como ordem lexicográfica. ( 5 o caractere não vem antes de 1 do caractere, então 5 a string não pode vir antes de 14 da string - 05 , no entanto, 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 de find é o caminho do arquivo, portanto obteríamos sda/Alfa/File 1 , mas usando -printf '%f\n' , informamos find para imprimir apenas o nome do arquivo.
por muru 23.11.2014 / 19:18