2013-07-15 1 views
2

*~ or #*#과 같은 이름의 모든 파일을 삭제하고 싶습니다.이름이 여러 파일 찾기 (쉘 유닉스)

find "dir" -name '#*#' -or -name '*~' -delete 

을하지만 그것은 단지 시작과 끝 나는 그렇게 할 수있는 방법

에서 # 사용하여 파일을 마지막에 ~와 파일을 삭제하지 :
나는 시도? 대한 -regex 스위치를 찾는 방법

+0

당신이'# foo는 번호를 '삭제 하시겠습니까 모두 디렉토리 -name "~"-delete - 또는 -name "# #"-delete 감사를 찾을? – Beta

답변

0

:

find -E . -regex "^./(~|##)$" -exec rm '{}' \; 

-E

는 확장 (현대) 정규 표현식 기능을 지원하는 데 사용하고있다.

+0

내 디렉토리가/home/test 인 경우 정확히 무엇을 작성해야합니까? (나는 경로를 어디에 넣을 지 이해하지 못한다) –

+0

다음 명령을 사용하면된다.'find -E/home/test -regex "^./(~ | ##) $"-exec rm '{}'\;' – anubhava

+0

나는 -E/home/tesrt -name "^./(* ~ | # * #) $"-print를 찾는다. 아무 것도 찾지 못한다. (나는 ~ * 또는 # * #와 파일이있다) –

1

먼저, -name 주 패턴을 지정해야합니다. ##은 정확히 ##이라는 파일과 일치하지만 *####으로 끝나는 파일과 일치합니다. 둘째로, name의 두 가지 용도를 그룹화하여 하나의 일치가 삭제 될 일치로 계산되도록해야합니다.

find dir \(-name '*##' -or -name '*~' \) -delete 
+0

나는 이것을 시도하지만 작동하지 않는다. 당신이 쓰는 것을 정확히 복사하고 나는 오류가 있습니다 : find :) : no beginning '(' –

0

내 solutiom을 찾을 :