명령용ls
-F, --classify
append indicator (one of */=>@|) to entries
Wikipedia *
에서는 실행 파일 및 디렉터리를 의미한다고 말합니다 /
. 일반 파일 뒤에는 위의 기호가 없습니다.
하지만 *
아래에는 텍스트 파일과 PDF 파일도 있습니다. 실행 파일인가요?
표시기는 -F
항상 의 첫 번째 필드와 동일한 것을 의미합니까 -rwxrwx---
?
-F
하드 링크와 파일 또는 표시기의 첫 번째 필드 사이에는 차이가 없는 것 같습니다 -rwxrwx---
. 어떻게 구별하나요?
감사해요.
답변1
디렉토리인 각 경로 이름( '/' ), 각 실행 파일 뒤( '*' ), 각 FIFO( '|' ) 바로 뒤에 씁니다. 경로 이름은 at 기호('@') 뒤에 쓰여집니다. 심볼릭 링크.
... '='는 소켓을 의미하고, '>'는 문을 의미합니다.
=
주요 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
이 파일에는 세 개의 링크가 있습니다. 그 중 어느 것도 "기본" 링크가 아니며 어떤 방식으로든 원본 링크가 무엇인지 알 수 없습니다. 파일을 삭제하면 개수가 줄어들지만 다른 파일은 계속해서 동일한 파일을 참조합니다.
-F
do를 제외한 모든 표시자는 *
중간 모드 출력의 첫 번째 필드 값 중 하나에 매핑됩니다 ls -l
.추가의 가치특히 b
블록 장치, c
문자 장치 및 기타 시스템별 표시기의 경우에도 나타날 수 있습니다.