-F 옵션을 ls에 추가

-F 옵션을 ls에 추가

명령용ls

   -F, --classify
          append indicator (one of */=>@|) to entries

Wikipedia *에서는 실행 파일 및 디렉터리를 의미한다고 말합니다 /. 일반 파일 뒤에는 위의 기호가 없습니다.

하지만 *아래에는 텍스트 파일과 PDF 파일도 있습니다. 실행 파일인가요?

표시기는 -F항상 의 첫 번째 필드와 동일한 것을 의미합니까 -rwxrwx---?

-F하드 링크와 파일 또는 표시기의 첫 번째 필드 사이에는 차이가 없는 것 같습니다 -rwxrwx---. 어떻게 구별하나요?

감사해요.

답변1

ls -F~ 할 것이다:

디렉토리인 각 경로 이름( '/' ), 각 실행 파일 뒤( '*' ), 각 FIFO( '|' ) 바로 뒤에 씁니다. 경로 이름은 at 기호('@') 뒤에 쓰여집니다. 심볼릭 링크.

GNU ls에는 추가 신호가 포함되어 있습니다.:

... '='는 소켓을 의미하고, '>'는 문을 의미합니다.

=주요 BSD에도 존재함(FreeBSD,오픈BSD,네트워크BSD,운영 체제). OpenBSD를 제외한 모든 항목에는 %미백 기능도 포함되어 있습니다. 대부분의 상용 Unices가 포함되어 있지만 =표준은 아닙니다.

*파일이 실행 가능으로 표시되면, 즉 실행 가능 비트가 설정되면 파일 뒤에 A가 나타납니다. 이것이 반드시 실제로 파일을 실행할 수 있다는 의미는 아닙니다. 다음을 사용하여 실행 가능 비트를 설정 해제할 수 있습니다.chmod -x;일반적으로 텍스트 파일과 PDF가 실행 가능한 것을 원하지 않으므로 이렇게 하면 됩니다. 실행 파일 x에는 출력 도 포함됩니다 ls -l.

다른 사람들을 위해:

  • /매우 간단한 디렉토리를 나타냅니다.
  • |명명된 파이프인 FIFO를 나타냅니다.mkfifo(데이터를 한 번만 쓰고 다시 읽을 수 있습니다.)
  • @의 사용을 나타냅니다.ln -s, 이는 다른 경로의 별칭입니다.
  • =다른 프로세스와 통신하는 데 사용되는 특수 파일인 소켓을 나타냅니다.
  • >~을 위한일부 시스템의 또 다른 프로세스 간 통신 기능입니다.
  • %forwhiteouts는 연합 파일 시스템 스택의 상위 계층에서 이루어진 삭제를 표시하는 데 사용되는 특수 파일을 나타냅니다.

"일반 파일"은 일반적으로 데이터를 쓰고 나중에 다시 읽는 파일로 생각되는 파일입니다. 또는 위의 범주 중 하나에 속하지 않는 것으로 생각할 수도 있습니다.


ls -F출력이든 아니든 하드 링크와 다른 파일 사이에는 전혀 차이가 없습니다. 실제로 각 파일을 자체 하드 링크로 생각할 수 있습니다. 출력에서 특정 파일에 대한 링크 수를 볼 수 있습니다 ls -l. 두 번째 필드는 링크 수입니다.

-rw-r--r-- 3 root root  92766 Feb 20 11:42 test.txt

이 파일에는 세 개의 링크가 있습니다. 그 중 어느 것도 "기본" 링크가 아니며 어떤 방식으로든 원본 링크가 무엇인지 알 수 없습니다. 파일을 삭제하면 개수가 줄어들지만 다른 파일은 계속해서 동일한 파일을 참조합니다.


-Fdo를 제외한 모든 표시자는 *중간 모드 출력의 첫 번째 필드 값 중 하나에 매핑됩니다 ls -l.추가의 가치특히 b블록 장치, c문자 장치 및 기타 시스템별 표시기의 경우에도 나타날 수 있습니다.

관련 정보