질문을 읽은 후"ls -a"를 입력할 때 "."은 무엇을 의미합니까? 그리고".."?, 비슷한 것이 있습니다.
왜 표시되어야 합니까 .
? 제 말은, cd .
작동하지 않는 디렉토리가 있나요 ? 사용자가 매번 이 줄을 보는 것이 어떻게 도움이 됩니까?
답변1
ls -a
표시된 이유는 유틸리티 .
와 관련이 없으며 ..
Unix(및 Linux) 파일 시스템과 관련된 모든 것입니다.
모든 것이 파일입니다.
디렉터리는 실제로 파일 목록을 포함하는 파일입니다. 특정 디렉토리의 "내부"는 사용자 관점이므로 파일 시스템 관점은 아니지만 두 개의 특수 파일입니다.
- 첫 번째는 이라고 하며
.
현재 작업 디렉터리에 대한 참조입니다. 사람들은 .dll을 통해 현재 디렉토리에서 명령을 실행할 때 거의 매일 이를 사용합니다./scriptname
. - 두 번째는
..
CWD 상위 디렉터리에 대한 참조라고 합니다. 마찬가지로.
,..
디렉토리를 상위 디렉토리로 변경하려는 모든 사람이 매일 사용합니다cd ..
.
시스템 호출은 getdents()
시스템 측의 주요 도구로 ls
, 단순히 디렉토리의 모든 파일을 나열합니다. (기억하세요: 모든 것이 파일입니다. 장치, 디렉터리, 소켓 등이 모두 표시됩니다.)
실용성 측면에서 볼 때, ls
이 명령의 작성자는 특정 정보나 정보 유형을 필터링할 수 있는 다양한 옵션과 옵션 조합을 제공합니다. 위의 @Gilles가 주석 처리한 것과 같이 및 를 제외한 ls -A
모든 정보 포인트 파일을 표시합니다 . 이러한 옵션은 모두 후처리 옵션으로 간주될 수 있습니다. 발견된 내용이 아니라 표시되는 내용에 영향을 미칩니다 ..
..
ls
ls
.
기본적으로 및 를 명시 적으로 나열할 이유가 없습니다 ..
. 왜냐하면 우리 모두가 그것들이 어디에 있는지, 무엇을 위한 것인지, 언제 사용해야 하는지 알고 있기 때문입니다.
이상한 권한 문제를 해결할 때 이를 볼 수 있는 몇 가지 옵션이 있으면 확실히 도움이 됩니다.
확인하다맨페이지getdents()
1. 작동 방식을 자세히 설명하고 를 사용하여 컴파일할 수 있는 샘플 프로그램의 소스 코드가 포함되어 있습니다 gcc -Wall
. 이 소스 코드에는 디렉토리의 모든 파일이 나열되어 있습니다.
—
1. 적어도 우분투 맨페이지에는 getdents()
샘플 코드가 있는 것 같습니다.
답변2
ls
일반적으로 합계는 .
표시 되지 않습니다 ..
. 기본적으로 ls
모두 숨기기이름이 .
(점 파일) 로 시작하는 파일. ls -a
모든 것을 표시하도록 요청했기 때문에 표시됩니다. 일부 버전에는 ls
약간 다른 옵션이 있어 ls -A
모든 도트 파일을 표시하지만 .
또는 ..
.
.
ls -la
예를 들어 현재 디렉터리와 해당 상위 디렉터리, 디렉터리에 있는 파일의 권한 및 소유권에 대해 보고하는 등 단순히 이름 이상의 내용을 나열하는 경우 표시가 유용할 수 있습니다.