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

Каков эквивалентный вариант для ls Команда активировать нумерацию страниц, как в DOS dir /p делает?

5 ответов

Решение

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

ls -C | less

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

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

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

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

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

Труба работает так:

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

  • Более старый школьный эквивалент будет 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. Мы могли бы также вставить $* за меньшее, если бы это была важная команда. Вы можете увидеть все аргументы ls на man ls (стоит прочитать).


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

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

ls | less

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

Пытаться ls | less или же ls | more, Второй близок к версии для DOS.

      echo 'alias ls="ls --color=always"' >> ~/.bash_aliases
echo 'lsc(){ ls -C "$@" | less -R; }' >> ~/.bashrc
source ~/.bash_aliases && source ~/.bashrc

Результат работает lscв терминале

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

      $ ls

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

      $ ls | pager

Вышеупомянутая команда распечатает вывод в формате с разбивкой на страницы.

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

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