sh: /bin/ls: The parameter list is too long.
글쓴이: jee89 / 작성시간: 금, 2004/04/02 - 6:38오후
sh /bin/ls The parameter list is too long.
에러가 발생하는데요.
이걸 피할수 있는 방법이 있나요?
ls -1 AA*|egrep -v '(INFO|dup|txt|row|col)'|sort -t . -k 2,4
를 popen으로 "r" 모드를 열어서 파일을 처리하려고 하는데요.
파일이 작업 디렉토리에 엄청많습니다.
그냥 shell에서 ls -1 AA*|wc -l 해보니깐
동일한 에러가 발생하네요.
wc cannot open -
wc cannot open l
0 0 0 total
sh /bin/ls The parameter list is too long.
고치려면.. 어케하면되나요?
Forums:
find -maxdepth 1 이 ls -1 과 거의 비슷한 결과를
find -maxdepth 1
이 ls -1 과 거의 비슷한 결과를 보여줄겁니다.
AA* 라면,
find -name 'AA*' 겠지요.
다만 AA* 에 디렉토리가 있다면, -maxdepth 를 좀 바꿔줘야 할겁니다.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
find 를 사용하시면 됩니다.[quote]sh: /bin/ls:
find 를 사용하시면 됩니다.
이렇게 에러가 나는 이유는 AA* 에 매치 되는 파일들을 현재 shell이 일단 찾아서 ls에 넘기기 때문입니다.
즉
ls *
라고 하면 ls 가 현재 디렉토리를 뒤져가며 모든 파일을 보여주는 것이 아니라 shell이 찾아서 넘기기 때문입니다.
원리를 알면 비슷한 문제에 봉착했을 때 shell이 하는 짓인지 util이 하는 짓인지를 알 수가 있습니다.
find . -name "*" -print
이런 식으로 하면 find가 현재 디렉토리에서 찾아서 보여주지요.
---
http://coolengineer.com
감사. find로 서브디렉토리 안타는법있나요?
find로 search하면 서브디렉토리를 타던데
현재디렉토리만 검색대상으로 하는 옵션이 있나요?
^^find . -name AA*|egrep -v '(INFO|dup
^^
find . -name AA*|egrep -v '(INFO|dup|txt|row|col)'|sort -t . -k 2,4
하니깐,
sh: /bin/find: The parameter list is too long.
동일한 상황이 발생하는군요....
ㅠㅠ
find . -name 'AA*' 와 find . -name AA* 은
find . -name 'AA*' 와 find . -name AA* 은 전혀 다른 결과를 가져옵니다.... ;;;;
댓글 달기