Как активировать пагинацию для команды ls?

Как активировать пагинацию для команды ls?

Какая опция эквивалентна команде lsактивации пагинации, как в DOS dir /p?

решение1

Прямого эквивалента не существует ls, но естьlessутилита, которая форматирует вывод любой команды в виде отдельных страниц, прокручиваемых построчно или постранично:

ls -C | less

Где -Cотображаются триггеры столбца. Используйте lahв качестве аргументов ( ls -lah), чтобы получитьлпострочное отображение саВсе отображаемые файлы (включая скрытые) ичасразмеры файлов, пригодные для чтения человеком.

  • Чтобы цвета отображались правильно, вам нужно добавить --color=alwaysаргумент к ls, а -Rаргумент к less*:

    ls -C --color=always | less -R

    альтернативный текст
    это показывает 'ls -ah --color=always | less -R'

В отличие отmore,lessпозволит вам прокручивать вывод. Это также немного быстрее для очень больших списков.

Труба работает следующим образом:

У каждой программы есть вход и выход, канал перенаправляет выход одной программы (ls) на вход другой программы (less). А less просто ожидает вход, который затем форматирует.

  • Более старомодный эквивалент DOS будет таким:pg:

    ls | pg
    

Вы также можете

  • Используйте ls | headили ls | tailдля отображения только первой или последней части вывода.
  • Используйте watch "ls", чтобы держать дисплей открытым, обновляя его каждые несколько секунд, чтобы отслеживать изменения.
  • Используйте banner $(ls), если вы сидите очень далеко от экрана. (;

  • Если вам кажется, что все это слишком долго для запоминания, вы можете создатьпсевдонимдля этого:

    Откройте его ~/.bash_aliasesв текстовом редакторе и добавьте в него что-то вроде этого:

    alias lsp="ls -ah --color=always | less -R"
    

    (это скрипт, который запускается каждый раз при запуске нового виртуального терминала, вам следует настроить все ваши постоянные псевдонимы там)

    Теперь вы можете просто ввести lspили любое другое имя по вашему выбору.

    Если вы хотите иметь возможность пройтидальнейшие аргументык вашему псевдониму нам нужно определить функциювместо:

    lsp(){ ls -ah --color=always "$@" | less -R; }
    

    Функция, в принципе выглядящая так: name(){ commands; };может принимать аргументы, $1, $2, $3и т. д. $@означает"каждый аргумент, если таковой имеется".

    Теперь вы можете запустить что-то вроде lsp *.py, lsp -Cи так далее. Мы вставляем аргументы в точку, где они передаются в ls. Мы также могли бы вставить $* для less, если бы это была важная команда. Вы можете увидеть все аргументы ls наman ls(стоит прочитать).


*: Причина в том, что всякий раз, когда вы что-то передаете по конвейеру, он обнаруживает терминал (на самом деле другую программу), не способный отображать цвет. "--color=always" заставляет ls игнорировать это. Ключ -R заставляет меньше перерисовывать экран,избегая цветовправильно.

решение2

Я не уверен, есть ли какая-то команда ls для пагинации. Однако вы можете использовать конвейер и less, например:

ls | less

И используйте q для выхода.

решение3

Попробуйте ls | lessили ls | more. Второй вариант близок к версии DOS.

решение4

Разбиение на страницы можно выполнить с помощью следующей команды.

$ ls

Приведенная выше команда выведет вывод в прокручиваемом формате.

$ ls | pager

Приведенная выше команда распечатает вывод в постраничном формате.

Некоторые дополнительные указания:

  • Для перехода на следующую страницу используйте пробел.
  • Для выхода из режима пагинации используйте клавишу q.

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