더북(TheBook)

첫 번째 방법은 우리가 의도한 대로 동작한다. 패턴이 파일 경로 전체와 일치하기 때문이다. 디렉터리명 mammal이 패턴 mammals/*.txt에 포함돼 두 파일 모두 일치한다.

$ echo mammals/*.txt
mammals/lizard.txt    mammals/snake.txt

첫 번째 방법은 우리가 다음 명령을 입력한 것과 같은 효과가 있다.

$ mv mammals/lizard.txt mammals/snake.txt reptiles

두 번째 방법에는 변수가 쓰였다. 변수는 문자열 리터럴 값 그대로 평가될 뿐, 파일 경로에 대한 특별한 처리는 되지 않는다.

$ echo mammals/$FILES
mammals/lizard.txt snake.txt

따라서 두 번째 방법은 우리가 다음 명령을 입력한 것과 동등하다.

$ echo mammals/lizard.txt snake.txt reptiles

두 번째 방법의 명령이 유효하려면 snake.txt 파일이 현재 작업 디렉터리에 있어야 한다. 하지만 이 파일은 mammals 디렉터리에 있으니 오류가 발생한다.

$ mv mammals/$FILES reptiles
/bin/mv: cannot stat 'snake.txt': No such file or directory
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.