find 명령을 보면 둘 사이의 차이점이 무엇인지 궁금합니다.
find -type f
그리고
find ${1} -type f
그것들은 모두 같은 기능을 수행하는 것 같은데, 그 ${1}
목적은 무엇입니까?
답변1
이것은 ${1}
find와는 아무런 관련이 없으며 쉘 매개변수입니다.
예를 들어, 두 번째 find 명령이 쉘 스크립트 내에서 실행되면 다음과 같습니다 test.sh
.
#!/bin/bash
find ${1} -type f
그런 다음 test.sh
사용하면
./test.sh cica
그런 다음 명령줄 cica
의 셸로 대체됩니다 . find
이 find
명령은
find cica -type f
cica
..또한 실행됩니다(따라서 현재 디렉터리가 아닌 디렉터리에서 파일을 찾습니다 ).
bash
Ps 우리 모두는 , , ls
, cp
의 매뉴얼을 일생에 한 번은 읽어야 합니다 strace
.
답변2
@DopeGhoti가 언급했듯이 ${1} (또는 $1)은 스크립트나 함수의 첫 번째 매개변수입니다.
질문하신 코드는 다음과 같은 함수의 일부인 것 같습니다.
#/bin/bash
function show {
find ${1} -type f -print
}
show #...find with current directory as starting point...
show mydir #...find using `mydir` as starting point...
즉, 인수 없이 함수를 호출하면 함수는 ${1}
비어 있고 find -type f...
실행됩니다.
답변3
${1}
(또는 $1
)은 스크립트나 함수의 첫 번째 매개변수입니다. 질문에 호출하는 명령은 아마도 스크립트에 있을 것입니다. 매우 기본적인 예를 들면 다음과 같습니다.
#!/bin/bash
find "${1}" -type f
파일을 실행 파일로 저장 seek.sh
하고 명령을 실행하면 ./seek.sh /home
실행되는 명령은 입니다 find "/home" -type f
.