`...`를 이용하는 방법은 파일 이름에 공백이 있는 경우 제대로 동작하지 않을 가능성이 높습니다.
$ touch "abc" "who am i"
$ rm `ls | grep -v abc`
rm: cannot remove `who': No such file or directory
rm: cannot remove `am': No such file or directory
rm: cannot remove `i': No such file or directory
원하는 파일 이름이
원하는 파일 이름이 abc 라면 아래와 같이 하시면 됩니다.
rm `ls | grep -v abc`
`...`은 공백에 취약합니다.
`...`를 이용하는 방법은 파일 이름에 공백이 있는 경우 제대로 동작하지 않을 가능성이 높습니다.
따라서, 제대로 하려면 find를 이용하는 것이 좋습니다.
보기엔 복잡하지만 그리 어렵지는 않습니다. 쓸데없이 하위 디렉터리까지 뒤지는 것을 막기 위해
-maxdepth 1
을 주고, 디렉터리가 아닌 일반 파일만 대상으로 하기 위해-type f
를 사용했습니다.똑같이 했는데
감사합니다.
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
그리고 rm `...` 방식은
그리고 rm `...` 방식은 파일이 엄청나게 많을 경우 제대로 동작하지 않을 수도 있습니다.
이 경우, find 명령의 -path ... -prune과 -exec rm ...을 쓰는 방식으로 해결할 수 있습니다.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기