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

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

34
задан 2 January 2011 в 16:25

3 ответа

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

ls -C | less

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

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

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

    alt text
    это показывает 'ls - ах - color=always | меньше-R'

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

Трубопроводы как это:

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

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


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

54
ответ дан 2 January 2011 в 16:25

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

ls | less

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

0
ответ дан 2 January 2011 в 16:25

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

0
ответ дан 2 January 2011 в 16:25

Другие вопросы по тегам:

Похожие вопросы: