Я ищу команду для вывода списка всех файлов в каталоге с помощью команды ls
.
Требования: - в алфавитном порядке - сначала папки, затем файлы (в алфавитном порядке) - нет меток времени или другой информации, только простые имена Мне нужно:
ls -la | rev | cut -d' ' -f 1| rev
Я хотел бы вывод, как это (папки должны иметь синий цвет):
folder_A
folder_B
folder_C
file_A
file_B
file_C
По крайней мере, в последних версиях ls
вы можете добавить опцию --group-directories-first
, чтобы получить список с каталогами над обычными файлами. Ваша команда ls
, вероятно, уже имеет псевдоним для использования --color=auto
, но если нет, вы можете добавить это (вы можете использовать --color=always
, но это может привести к нежелательным результатам, если вы когда-либо используете команду в конвейере). Наконец, -1
приводит к тому, что выходные данные представляются в одном столбце. Таким образом, полная команда будет
ls -1 --color=auto --group-directories-first
@Bruni ответил командой tree
, но удалил ее? На самом деле это был хороший ответ, я покопался в человеке и нашел решение: tree -L 1 --dirsfirst
Это вывод:
.
├── docs
├── media
├── node_modules
├── src
├── test
├── API.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.rst
├── LICENSE
├── package.json
├── README.md
├── webpack.config.js
└── yarn.lock
5 directories, 8 files
Как избавиться от линии '5 dirs , 8 файлов "без потери цветовой кодировки на папках?
Редактировать: @steeldriver, также спасибо за ваш ответ: ls -1 --color=auto --group-directories-first