3

Я использую следующую команду, чтобы вывести список файлов, в том числе в подкаталогах, упорядоченных по имени.

dir /b/s/on

Файлы правильно упорядочены в своих заданных каталогах, но каталоги не упорядочены. Похоже, что каталоги упорядочены по дате последнего изменения.

Может ли dir сортировать каталоги?

Вот скриншот сегмента вывода (обфусцированный):

1 ответ1

4

dir - это обход дерева по каталогу, но только сортировка записей в конечных каталогах. Это проблема, потому что это файловая система FAT. В файловой системе FAT записи в любом каталоге не сортируются, что приводит к несортировке обхода дерева. Каталоги NTFS, напротив, всегда сортируются.

У вас есть пара решений. Проще всего было бы передать вывод через sort:

dir /b/s | sort

(Если вы используете sort для упорядочивания, нет необходимости использовать параметр /on для dir .)

Другой вашей альтернативой будет использование ls стиле Unix, что, безусловно, сделает это правильно. В качестве примера можно привести ls в Cygwin или в моей собственной оболочке Hamilton C.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .