find 명령의 "$@"는 무엇을 의미합니까? [중복]

find 명령의 "$@"는 무엇을 의미합니까? [중복]

최근에 다음 find 명령을 사용하는 스크립트를 보았습니다.

find "$@" -type f -name "*.iso"

여기서는 무엇을 의미하나요 "$@"?

답변1

"$@"쉘에 전달된 모든 인수로 확장됩니다. 구체적인 내용과는 아무 관련이 없습니다 find.

https://linux.die.net/man/1/bash

@

1부터 시작하는 위치 매개변수로 확장됩니다. 큰따옴표 내에서 확장이 발생하면 각 인수가 별도의 단어로 확장됩니다. 즉, "$@"는 "$1" "$2"와 동일합니다... 단어 내에서 큰따옴표 확장이 발생하면 첫 번째 매개변수의 확장은 원래 단어의 시작 부분으로 연결되고, 마지막 매개변수는 원래 부분에 연결됩니다. 위치 인수가 없으면 "$@" 및 $@는 아무것도 확장되지 않습니다(즉, 삭제됩니다).

다음은 보다 간결하고 실용적이며 관련성이 높은 예입니다.

$ cat a.sh
#!/bin/bash -x
find "$@" -ls
$ ./a.sh foo bar blah
+ find foo bar blah -ls
15481123719088698      4 -rw-rw-rw-   1 steve    steve           4 Jun 30 19:29 foo
17451448556173323      0 -rw-rw-rw-   1 steve    steve           0 Jun 30 19:29 bar
find: ‘blah’: No such file or directory
$

관련 정보