find 명령 구문의 차이점

find 명령 구문의 차이점

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의 셸로 대체됩니다 . findfind명령은

find cica -type f

cica..또한 실행됩니다(따라서 현재 디렉터리가 아닌 디렉터리에서 파일을 찾습니다 ).

bashPs 우리 모두는 , , 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.

관련 정보