2014-12-10 5 views
0

당신이 할 경우 리눅스에 표시되는 ./ 무엇입니까 : 나는 ../ 알고유닉스/리눅스 : 무엇입니까. /?

$ ls -a 
./ ../ other-files 

는 상위 디렉토리의 관계를 나타내고, 나는 우리가 실행으로 표시된 파일을 실행 ./를 사용할 수 있다는 것을 알고 있지만, 무엇 ./입니다 불려지고 왜 ls -a에 숨겨진 파일로 표시됩니까?

감사합니다.

+1

'.'은 현재 디렉토리이고'..'는 상위 디렉토리이며'/'는 경로 구분자입니다. –

+0

댓글은 설명을 요구하고 짧은 답변을 제공하지 않습니다. – chepner

+0

'. /'가 단지 현재 디렉토리 일 경우, 실행 파일 앞에'. /'를 입력해야하는 이유가 내 질문 인 것 같습니다. 파일이 현재 작업중인 디렉토리에 있으면 파일 이름만으로되지 않는 이유는 무엇입니까? 감사! – asking

답변

1

. 현재 작업 디렉토리를 나타냅니다.
.. 현재 작업 디렉토리의 상위 디렉토리를 나타냅니다.

디렉토리 구조

유닉스의 모든 디렉토리를 기준으로 ... 있습니다. 이를 이해하려면 inodes.이고 ..ls -lai 명령임을 확인하십시오.

디렉토리 a이 디렉토리 b의 상위 디렉토리라고 가정 해 보겠습니다. 디렉토리 b의 내용을 ls -lai으로 나열하면 의 inode는 b 디렉토리를 가리키고 ..a 디렉토리를 가리 킵니다.

파일

...가 파일 목록에 사용할 수 있습니다 준다. 우리는 더 특이 사용한 동일한 제 경우

$ ls -l file1.txt 

$ ls -l ./file1.txt 

이다.

파일 실행

우리는 아래의 방법과 그것을 현재 작업 디렉토리에있는 스크립트를 실행해야
.

./은 현재 작업 디렉토리에있는 script.sh을 실행한다는 것을 의미합니다. ./을 지정

$ ./script.sh 

우리가 통과 할 수 bash에 대한 인수로 script.sh와는 그래서 필요가 없습니다.

$ bash script.sh 

또는

경우
$ bash ./script.sh 

현재 작업 디렉토리가 PATH 환경 변수의 일부인 경우는, 우리는 단지 ./ 또는 bash

$ script.sh 

echo ./을 언급하지 않고 스크립트를 호출 할 수 있습니다 .은에게 특별하지 않으므로 확장되지 않습니다. 10 또는 bash. 파일 확장 메타 문자가 * 인 경우 ?, .. 및 기타는 특수 문자입니다.

2

파일 시스템의 트리에있는 노드이며 파일 디스크립터가 연결되어있어 표시됩니다.

셸에서. 현재 디렉토리를 나타내고 /는 이것이 디렉토리임을 나타내며, 우리가 파일을 실행할 필요가있을 때, ./ 현재 디렉토리와 실행 파일과 같은 경로를 알려줄 필요가있다.