디렉터리의 여러 파일을 연결하거나 삭제합니다.

디렉터리의 여러 파일을 연결하거나 삭제합니다.

일반적으로 동일한 확장자를 가진 파일을 연결하려면 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.

관련 정보