Linux Shell : 공백과 와일드카드 사용

이런 단순한 명령이 오류를 발생시켰다.

$ ls -al "/home/userid/abc def/a*"
ls: '/home/userid/abc def/a*'에 접근할 수 없습니다: 그런 파일이나 디렉터리가 없습니다

틀림없이 abc def 디렉토리 안에는 a 로 시작하는 파일이 있는데도!

이유는 한가지, 바로 와일드 카드 때문.
와일드 카드가 따옴표 안에 들어가 있기 때문에, 말 그대로 a* 라는 파일을 찾으라는 명령이 되어 버렸다. 즉, 와일드 카드가 와일드 카드가 아니게 된 상황.

이를 위해선, * 를 따옴표 밖으로 빼줘야 한다.

$ ls -1q "/home/userid/abc def/a"*                                                                                    
'/home/userid/abc def/aoete'

간단하지만, 모르면 짜증나고 황당한 문법!
StackOverflow 에서 도움을 얻었다.

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.