команда для печати списка папок с нескольких дисков

команда для печати списка папок с нескольких дисков

Существует ли команда CLI для вывода в алфавитном порядке (но в одном текстовом файле или электронной таблице) списка папок, содержащихся на разных жестких дисках?

Например, предположим, что у меня такая конфигурация:

/sda/Alfa/File 1
/sdb/Bravo/File 5
/sdb/Bravo/File 20
/sdc/Delta/File 14
/sdc/Delta/File 11

Я хотел бы вывести файл TXT или электронную таблицу, в которой папки перечислены в алфавитном порядке, что-то вроде:

File 1
File 5
File 11
File 14
File 20

Могу ли я сделать это из CLI?

решение1

Попробуйте использоватьfindсsort:

find /sda /sdb /sdc -type f -printf '%f\n' | sort

Например:

$ 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

Обратите внимание, чтоэтотэто то, что обычно подразумевается под алфавитным порядком, точнее, лексикографическим порядком. ( 5символ не предшествует 1символу, поэтому 5строка не может предшествовать 14строке 05, однако будет.)


Объяснение:

findэто программа для поиска вещей.

  • -type fуказывает, что нам нужны обычные файлы, а не каталоги (или другие специальные файлы).
  • Обычный вывод find— это путь к файлу, поэтому мы получим sda/Alfa/File 1, но используя -printf '%f\n', мы говорим findвывести только имя файла.

Связанный контент