Возможно, вы захотите приобрести что-то вроде этого , главным образом потому, что это также уменьшит количество кошачьей шерсти, попадающей на клавиатуру. Вам нужно потратить немного денег, но в качестве дополнительных бонусов вам не нужно нажимать комбинацию клавиш, запускать приложение или поддерживать приложение в рабочем состоянии, оно работает на любой ОС, и вы все равно можете использовать свою клавиатуру, пока ваша кошка там.
Также я хотел прокомментировать предложение открыть vim, но, видимо, у меня пока недостаточно репутации для этого. К сожалению, Ctrl и Z расположены слишком близко друг к другу, поэтому кошка может легко перевести vim в фоновый режим и получить немедленный доступ к оболочке.
Должно быть достаточно портативным:
find. -type f | sort
Если ваши входные данные содержат файлы с новыми строками в имени, я считаю, что это должно лучше обрабатывать их (спасибо Кусалананде за указание на этот возможный сценарий):
find. -type f -print0 | sort -z | tr '\0' '\n'
Использование оболочки zsh
:
print -C1 **/*(.DN)
В оболочке zsh
это напечатает результат расширения заданного шаблона подстановки в один столбец (это то, что делает print -C1
). Шаблон **/*(.DN)
заменяется на пути ко всем обычным файлам (, а не к каталогам и т. д.; это то, что квалификатор glob (.)
делает )в текущем каталоге или ниже него. По умолчанию они будут располагаться в лексикографическом порядке. Квалификатор (DN)
glob имеет тот же эффект, что и установки dotglob
и nullglob
, соответственно, в оболочке bash
(, т. е. он заставляет шаблон соответствовать скрытым именам, а также заставляет его вообще не расширяться, если он ничего не соответствует ).
Вместо (.)
для вывода списка только обычных файлов можно было бы использовать (^/)
для вывода списка не -каталогов.
В bash
вы можете сделать что-то подобное с
shopt -s globstar dotglob nullglob
for pathname in **/*; do
[[ ! -d $pathname ]] && printf '%s\n' "$pathname"
done
, который рекурсивно печатает лексикографически отсортированные пути ко всем не -каталогам (, включая скрытые файлы ).
Если вы хотите вывести список всех файлов во всех подкаталогах -из вашего текущего каталога и отсортировать по имени файла, используйте команду find.
find. -type f -exec basename {} \; | sort