2011-08-02 4 views
3

/var/local/tmp/foo *와 같은 파일에 대해 ls 명령을 수행하고 싶습니다. 나는이름에 *를 사용하여 ls 명령을 수행하십시오.

%x[ls "#{path]"] 

를 사용하는 것을 시도하고있다 그러나 이것은 반환 % X [ls '이 (가)/var/local을/tmp를/foo는 *은'] 또한 오류 위의 반환

ls: /var/local/tmp/foo*: No such file or directory 

참고.

나는 같은 명령을 수행하지만,로는 다음 경우 제대로 작동

%x[ls /var/local/tmp/foo*] 

.

문자열에 디렉토리 경로를 넣으면 ls가 문자 그대로 "/ var/local/tmp/foo *"라는 파일로 취급됩니다.

아이디어를 얻는 방법에 대한 아이디어가 있으십니까? 이 문자열을 포함하는 변수를 사용하고 싶습니다. 따라서/var/local/tmp/foo *를 직접 입력하는 것은 옵션이 아닙니다.

답변

7

"/path/to/*" 같은 뭔가가 글로브라고, 그들은 실제로 으로하지 ls 같은 명령으로 쉘을 확장됩니다. 쉘을 실행하여 glob을 확장 할 수 있지만 내장 된 Dir 클래스를 사용하는 것이 더 쉽습니다.

Dir["/path/to/*.txt"] 

일치하는 파일 이름의 배열을 반환합니다.

+0

완벽 감사 :) – Robin

관련 문제