UNIX 지정한 파일외의 모든파일을 지우기

Solaris 2006. 2. 21. 16:55 posted by CecilDeSK
반응형
지정한 파일외에 다 지우기..
가령 디렉토리 안에..
report report_1 report_2 report_3
report_4 report_5 print_1 print_2

위같은 파일이 있씁니다.
저는 report 는 나두고 다지우고
싶습니다.
그냥은 하나씩 rm 을써서
하나씩 지우다가 report 만 안지우면 되겠지만 한번의 명령어로 지우려면 다음과 같이 하면 되겠죠..

rm -f `ls |grep -v '^report$'`

이렇게 하면 report 만 남습니다.

이건 역인용부호 `` 즉 명령어 치환에 의해 가능한것입니다. ls를 써서 파일목록이 출력되면 파이프를 통해 grep의 입력으로 들어가겠죠.. 그다음 grep의 출력이 역인용부호(``)를 이용해서 결과를 rm 으로 전달 되는것입니다.
참고로
rm 의 -f 붙인이유는 어차피 지울꺼니 확실히 지우자구요. :-) 겁나시는분은 -i 로 교체.
grep의 -v 옵션은 매치되지 않는 패턴을 찾는 옵션입니다. 반전이라고 해도 틀리지는 않겠습니다. :-)
grep의 ^은 앞부분을 말하는거구
$은 뒤를 명시해주는거죠..
grep 정규식을 이용하면 정확히 파일을 구별해서 지울 수가 있겠군요..


반응형