UNIX 스크립트는 공백이 있는 폴더를 읽지 않습니다.

UNIX 스크립트는 공백이 있는 폴더를 읽지 않습니다.

모든 폴더를 검색하고 특정 시간보다 오래된 파일을 반환하도록 되어 있는 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:] 문자로 읽히도록 합니다.

이는 쉘 스크립트를 작성할 때 개발하는 매우 좋은 습관입니다!

관련 정보