Сохранение многоколоночного вывода из ls при подкачке

Я думаю, что эта ошибка возникает из-за раздела raid или LVM.

Для временного исправления для этой проблемы:

Изменить: /etc/grub.d/10_linux

Заменить 'quick_boot="1"' with 'quick_boot="0"'

Затем:

sudo update-grub
5
задан 20 December 2011 в 15:02

1 ответ

Есть два варианта

   -C     list entries by columns
   -x     list entries by lines instead of by columns

, первый показывает вывод в столбцах, где каждый столбец приходит после предыдущего (с точки сортировки):

enzotib@acer:tmp$ touch {10..99}
enzotib@acer:tmp$ ls -C | less
10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95
11  16  21  26  31  36  41  46  51  56  61  66  71  76  81  86  91  96
12  17  22  27  32  37  42  47  52  57  62  67  72  77  82  87  92  97
13  18  23  28  33  38  43  48  53  58  63  68  73  78  83  88  93  98
14  19  24  29  34  39  44  49  54  59  64  69  74  79  84  89  94  99

Второй вариант помещает первые элементы в первую строку, затем во вторую строку и так далее:

enzotib@acer:tmp$ ls -x | less
10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29
30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49
50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69
70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89
90  91  92  93  94  95  96  97  98  99

При подключении к пейджеру ширины терминала и форматирование цвета не учитывается в ls. Для этого вы можете сделать

ls -Cw $COLUMNS --color | less -r

, где опция -r для less необходима для правильной интерпретации цветовых последовательностей ANSI. Включение этой строки в скрипт не работает, потому что COLUMNS не экспортируется в подоболочки. В работе ~/.bashrc можно использовать два метода:

export COLUMNS реализовать эту линию как функцию или псевдоним в ~/.bashrc
myls() {
    ls -Cw $COLUMNS --color "$@" | less -r
}
6
ответ дан 25 May 2018 в 15:48
  • 1
    Это почти делает то, что я ищу. Я знал о -C-переключателе для ls, но это только форматы в двух столбцах, а не по умолчанию ls по умолчанию, используя максимальное количество столбцов для доступной ширины экрана. – Matty 20 December 2011 в 15:02
  • 2
    Количество столбцов зависит от максимальной длины имени файла. Как вы можете видеть, на моем выходе есть еще много столбцов. – enzotib 20 December 2011 в 15:04
  • 3
    Например, при запуске ls в /usr/share/doc/ без пейджера выводится четыре столбца на моем дисплее, но запуск с помощью -C-переключателя и пейджинга, который выводится с less, даст два столбца. Кроме того, это тоже не форматирование. – Matty 20 December 2011 в 15:06
  • 4
    Команда ls -Cw $COLUMNS --color /usr/share/doc | less -r должна дать лучший результат. – enzotib 20 December 2011 в 15:12
  • 5
    @Matty: он не работает в скрипте: см. Обновленный ответ. – enzotib 20 December 2011 в 15:23

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

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