"ls --dired -l" 또는 "ls -D -l"은 실제로 무엇을 인쇄합니까?

"ls --dired -l" 또는 "ls -D -l"은 실제로 무엇을 인쇄합니까?

ls --dired -l모든 디렉토리와 파일을 일부 숫자와 함께 인쇄합니다.

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

이 굵은 숫자는 무엇을 의미하나요?

--dired디렉토리 작업을 위한 Emacs 옵션이지만 여기서 숫자를 이해할 수 없습니다.

답변1

의 출력은 ls -DEmacs에 의해 구문 분석되어야 합니다.방향 모드.

~에서GNU Coreutils 매뉴얼

‘-D’
‘--dired’

longlist( -l) 형식을 사용하여 기본 출력 뒤에 한 줄을 인쇄합니다.

//DIRED// beg1 end1 beg2 end2 …

이것시작그리고엔덴출력에서 각 파일 이름의 시작과 끝의 바이트 위치를 기록하는 부호 없는 정수입니다. 이를 통해 Emacs는 이름에 이상한 문자(예: 공백이나 개행 문자)가 포함되어 있어도 복잡한 검색 없이 쉽게 이름을 찾을 수 있습니다.

디렉터리를 재귀적으로 나열하는 경우( -R) 각 하위 디렉터리 이름에 대한 오프셋과 함께 다음과 같은 줄을 출력합니다.

//SUBDIRED// beg1 end1 …

마지막으로 다음 형식의 줄을 출력합니다.

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

여기서 word는 인용 스타일입니다(파일 이름 형식 지정 참조).

실제적인 예는 다음과 같습니다.

$ mkdir -p a/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(aka )와 같은 옵션을 사용하여 호출 --dired하고 이름에 특수 문자가 포함된 파일에서 작업하는 경우 백슬래시가 포함된다는 점에 유의하세요.--escape-b

$ touch 'a b'
$ ls -blog --dired 'a b'
  -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라고도 함 )을 지정 하거나 이스케이프된 이름을 구문 분석할 준비를 해야 합니다.-N--literal

숫자는 출력에서 ​​파일 이름의 위치입니다.

begn 및 endn은 출력에서 ​​각 파일 이름의 시작과 끝의 바이트 위치를 기록하는 부호 없는 정수입니다.

답변2

-D, --dired
Emacs용으로 설계된 출력 생성방향 모드.

관련 정보