일반적으로 동일한 확장자를 가진 파일을 연결하려면 cat 을 사용합니다 *.txt
. 하지만 다른 디렉토리에 있고 다른 디렉토리의 파일을 연결하려고 하면 어떻게 될까요? 다음 명령문이 포함된 쉘 스크립트를 작성했습니다.
cat /home/tarakaramji/*.txt
실수:
cat /home/tarakaramji/*.txt no such file or directory
동일한 확장자를 가진 여러 파일을 제거하는 것과 같습니다.
rm /home/tarakaramji/*.txt
답변1
지정한 디렉터리에 파일이 없거나 .txt
디렉터리가 완전히 잘못된 것 같습니다. 여기서 일어나는 일은 기본적으로 쉘이 파일을 찾을 수 없으면 /home/tarakaramji/*.txt
해당 cat
이름의 파일도 존재하지 않기 때문에 오류가 발생하는 이유입니다.
첫 번째 작업을 수행하면 사용하려는 파일을 정확히 확인할 수 있습니다 echo
.
echo /home/tarakaramji/*.txt
만 표시되어야 합니다 /home/tarakaramji/*.txt
. nullglob
쉘 옵션이 설정되면 리터럴 사용이 방지되므로 실제로 인수가 없습니다.
shopt -s nullglob
echo /home/tarakaramji/*.txt
이 경우에는 cat
오류가 발생하지 않으며 에서 시작됩니다 stdin
.