Что на самом деле выводит «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' до 'tar' через 'xargs'
  • Игнорировать все совпадения для отрицательного шаблона extglob в рекурсивном ls
  • Почему Linux может показать имя файла, содержащее символ '/'?
  • Список только файлов, имеющих определенный символ в позиции
  • Как найти последние n новых файлов для каждой из нескольких каталогов
  • файл отсутствует на рабочем столе, но его можно увидеть с помощью «ls» в каталоге «Рабочий стол»
  • Как отключить команду ls?
  • Как найти файл в файловой системе из командной строки?
  • ls colors: почему некоторые из моих шрифтов черные, а другие - зеленые на выходе ls
  • Как отображать «доступные для человека» размеры файлов в результатах поиска?
  • Что означает символ «@» (at) на OSX ls?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.