모든 폴더를 검색하고 특정 시간보다 오래된 파일을 반환하도록 되어 있는 UNIX 스크립트가 있습니다. 제가 제시한 로직은 다음과 같으나 스크립트는 공백이 있는 폴더를 읽을 수 없습니다. 이 작업을 수행하는 방법에 대해 누구든지 도움을 줄 수 있습니까?
디렉토리='/a/b/테스트';
스크립트는 테스트 후 모든 하위 디렉터리를 검색하지만 "테스트 스크립트"와 같이 공백이 있는 디렉터리는 검색할 수 없습니다.
답변1
그래서 당신은 다음과 같은 것을 가지고 있습니다 :
$ foo='my dir'
$ ls $foo
my: no file or directory found
dir: no file or directory found
대신 다음을 시도해 보세요.
$ foo='my dir'
$ ls "$foo"
또는 더 나은 방법은 다음과 같습니다.
$ ls "${foo}"
두 방법 모두 [:space:] 문자가 셸에서 해석되지 않도록 보호하고 해당 문자가 명령에 대한 중단점이 아닌 [:space:] 문자로 읽히도록 합니다.
이는 쉘 스크립트를 작성할 때 개발하는 매우 좋은 습관입니다!