명령이 헷갈립니다 -exec
. 예를 들어 이 경우:
find . -type f -name "*.c" -exec cat {} \;>all_c_files.txt
받은 것 같아요cat file1 file2 file3 ... fileN
이 경우:
find . -type f -name "*.txt" -exec cp {} OLD \;
나는 얻다:
`cp file1 OLD`
`cp file2 OLD`
`cp file3 OLD`
...
`cp fileN OLD`
다음과 같은 유사한 상황:
find . -type f -name "*.txt" -exec printf "Text file: %s\n" {} \;
할 것 같습니다 :
printf "Text file: file1"
printf "Text file: file2"
printf "Text file: file3"
...
printf "Text file: fileN"
그럼 어떻게 exec
작동하나요? 내 말은, 이 예에서는 다르게 동작한다는 것입니다. 맞나요?
답변1
나는 당신 cat
이 명령(및 쉘 리디렉션)보다는 명령(및 쉘 리디렉션)에 대해 혼동하고 있다고 생각합니다 find
.
find . -type f -name "*.c" -exec cat {} \; > all_c_files.txt
다음과 동일:
(
cat file1 ;
cat file2 ;
cat file3 ;
...
cat fileN
) > all_c_files.txt
분명히 이전 명령은 다음 명령과 동일한 결과를 갖습니다.
cat file1 file2 file3 ... fileN > all_c_files.txt