find 명령은 원리를 보여줍니다. 목차

find 명령은 원리를 보여줍니다. 목차

find 명령이 때때로 현재 디렉토리( . )를 나열하지만 때로는 그렇지 않은 이유나 근거가 무엇인지 궁금합니다.

"."을 사용하면 현재 디렉터리가 외부 디렉터리에 표시되지만 내부 디렉터리에는 표시되지 않습니다.

$ pwd
/home/me/a

$ find . -exec echo  {} \;
.
./abc.txt
./a.txt
./d
./d/da.txt

특정 디렉토리를 지정하면 현재 디렉토리를 볼 수 없습니다.

$ find /home/me/a  -exec echo  {} \;
/home/me/a
/home/me/a/abc.txt
/home/me/a/a.txt
/home/me/a/d
/home/me/a/d/da.txt

이것이 ls의 견해입니다.

$ ls -lR
.:
total 4.0K
-rw-r--r--. 1 me    0 Oct 20 19:03 abc.txt
-rw-r--r--. 1 me    0 Oct 21 14:56 a.txt
drwxr-xr-x. 2 me 4.0K Oct 21 14:57 d/

./d:
total 0
-rw-r--r--. 1 me 0 Oct 21 14:57 da.txt

답변1

출력에 표시된 지점은 정확히 명령으로 지정한 find현재 위치입니다 . find .당신이 말할 때도 마찬가지입니다 find /home/me/a. 두 경우 모두 find는 검색 중인 디렉터리(지정된 대로)와 find해당 위치에서 발견된 해당 파일 및 디렉터리를 보여줍니다.

우리가 찾고 있는 디렉토리는.

$ find . ....
.
./abc.txt
./a.txt

찾기는 지정한 매개변수(예: )를 기반으로 결과를 표시합니다 ..

우리가 찾고 있는 디렉토리는/home/me/a

$ find /home/me/a ....
/home/me/a
/home/me/a/abc.txt
/home/me/a/a.txt

find지정한 매개변수에 따라 결과를 다시 표시합니다 /home/me/a.

용어

규범을 내부 또는 외부 용어로 생각하지 말고 오히려 상대적이거나 절대적인 것으로 생각하십시오. 상대적으로 그렇다 ., 물론이다 /home/me/a. 어느 쪽이든 상관없습니다 find. 해당 위치에서 아래쪽으로 발견된 디렉터리와 파일만 표시합니다.

답변2

상대 디렉토리()를 사용하면 find .동일하지만 절대적인 while의 예상 결과가 제공됩니다. 절대 경로를 사용할 때는 이러한 현상이 나타날 것으로 예상하지 않습니다../abc.txtfind /home/ma/a/abc.txt.

.기술적으로 "찾기 및 바꾸기"가 가능하고 그 반대도 가능하므로 결과는 동일합니다 /home/me/a.

관련 정보