Что на самом деле выводит «ls -dired-l» или «ls -D -l»?

ls --dired -l печатает все файлы и файлы вместе с некоторым числом, за которым следует

 //DIRED// ***66 69 122 131 ....*** //DIRED-OPTIONS// --quoting-style=literal 

Что означают эти цифры жирным шрифтом?

--dired – это опция Emacs для работы с каталогами, но здесь я не понимаю числа.

2 Solutions collect form web for “Что на самом деле выводит «ls -dired-l» или «ls -D -l»?”

Выходной сигнал ls -D должен анализироваться в режиме ожидания Emacs.

Из руководства GNU Coreutils

 '-D' '--dired' 

В длинном списке ( -l ) распечатайте дополнительную строку после основного вывода:

 //DIRED// beg1 end1 beg2 end2 … 

Begn и endn представляют собой целые числа без знака, которые записывают положение байта начала и конца каждого имени файла в выходном файле. Это позволяет Emacs легко найти имена, даже если они содержат необычные символы, такие как пробел или символ новой строки, без причудливого поиска.

Если каталоги перечислены рекурсивно ( -R ), выведите аналогичную строку со смещениями для каждого имени подкаталога:

 //SUBDIRED// beg1 end1 … 

Наконец, выведите строку вида:

 //DIRED-OPTIONS// --quoting-style=word 

где слово – стиль цитирования (см. «Форматирование имен файлов»).

Вот пример:

 $ mkdir -pa/sub/deeper a/sub2 $ touch a/f1 a/f2 $ touch a/sub/deeper/file $ ls -gloRF --dired a a: total 8 -rw-r--r-- 1 0 Jun 10 12:27 f1 -rw-r--r-- 1 0 Jun 10 12:27 f2 drwxr-xr-x 3 4096 Jun 10 12:27 sub/ drwxr-xr-x 2 4096 Jun 10 12:27 sub2/ a/sub: total 4 drwxr-xr-x 2 4096 Jun 10 12:27 deeper/ a/sub/deeper: total 0 -rw-r--r-- 1 0 Jun 10 12:27 file a/sub2: total 0 //DIRED// 48 50 84 86 120 123 158 162 217 223 282 286 //SUBDIRED// 2 3 167 172 228 240 290 296 //DIRED-OPTIONS// --quoting-style=literal к $ mkdir -pa/sub/deeper a/sub2 $ touch a/f1 a/f2 $ touch a/sub/deeper/file $ ls -gloRF --dired a a: total 8 -rw-r--r-- 1 0 Jun 10 12:27 f1 -rw-r--r-- 1 0 Jun 10 12:27 f2 drwxr-xr-x 3 4096 Jun 10 12:27 sub/ drwxr-xr-x 2 4096 Jun 10 12:27 sub2/ a/sub: total 4 drwxr-xr-x 2 4096 Jun 10 12:27 deeper/ a/sub/deeper: total 0 -rw-r--r-- 1 0 Jun 10 12:27 file a/sub2: total 0 //DIRED// 48 50 84 86 120 123 158 162 217 223 282 286 //SUBDIRED// 2 3 167 172 228 240 290 296 //DIRED-OPTIONS// --quoting-style=literal к $ mkdir -pa/sub/deeper a/sub2 $ touch a/f1 a/f2 $ touch a/sub/deeper/file $ ls -gloRF --dired a a: total 8 -rw-r--r-- 1 0 Jun 10 12:27 f1 -rw-r--r-- 1 0 Jun 10 12:27 f2 drwxr-xr-x 3 4096 Jun 10 12:27 sub/ drwxr-xr-x 2 4096 Jun 10 12:27 sub2/ a/sub: total 4 drwxr-xr-x 2 4096 Jun 10 12:27 deeper/ a/sub/deeper: total 0 -rw-r--r-- 1 0 Jun 10 12:27 file a/sub2: total 0 //DIRED// 48 50 84 86 120 123 158 162 217 223 282 286 //SUBDIRED// 2 3 167 172 228 240 290 296 //DIRED-OPTIONS// --quoting-style=literal 

Обратите внимание, что пары смещений в строке «// DIRED //» выше определяют эти имена: f1, f2, sub, sub2, deep, file. Смещения в строке «// SUBDIRED //» ограничивают следующие имена каталогов: a , a/sub , a/sub/deeper , a/sub2 .

Вот пример того, как извлечь пятое имя записи, deeper , соответствующее паре смещений 222 и 228:

 $ ls -gloRF --dired a > out $ dd bs=1 skip=222 count=6 < out 2>/dev/null; echo deeper 

Обратите внимание, что хотя приведенный выше список включает в себя завершающую косую черту для deeper записи, смещения выбирают имя без конечной косой черты. Однако, если вы вызываете ls с --dired вместе с опцией, например --escape (aka -b ), и работаете с файлом, чье имя содержит специальные символы, обратите внимание, что обратная косая черта включена:

 $ touch 'ab' $ ls -blog --dired 'ab' -rw-r--r-- 1 0 Jun 10 12:28 a\ b //DIRED// 30 34 //DIRED-OPTIONS// --quoting-style=escape 

Если вы используете стиль цитирования, который добавляет отметки кавычек (например, --quoting-style=c ), тогда смещения включают метки кавычек. Поэтому будьте осторожны, чтобы пользователь мог выбрать стиль цитирования через переменную окружения QUOTING_STYLE . Следовательно, приложения, использующие --dired должны либо указать в командной строке явный параметр --quoting-style=literal (aka -N или --literal ), либо быть готовы проанализировать экранированные имена.

Цифрами являются позиции имен файлов на выходе

Begn и endn представляют собой целые числа без знака, которые записывают положение байта начала и конца каждого имени файла в выходном файле.

-D, – прилагается
генерировать выходные данные, созданные для режима Emacs.

  • Список файлов размером более {размер} сортируется по дате
  • ls command - список файлов, содержащих определенную строку в имени файла и принадлежащих к определенному типу
  • Проблема с сценарием Linux Bash с подстановочным знаком
  • ls или find, чтобы исключить двоичные файлы
  • Удаление каталога, в котором нет файлов
  • В чем разница между «--color = auto» и «--color = tty»?
  • Вывести поле ls -l с цифрами, сгруппированными по тысячам?
  • Распечатывать список файлов меньше указанного размера файла
  • Как перечислить ВСЕ каталоги в соответствии с их размером?
  • список всех файлов с расширением .log за исключением одного
  • Список файлов в другом (нерабочем) каталоге с шаблоном
  • Linux и Unix - лучшая ОС в мире.