rm을 사용하여 파일과 디렉토리를 재귀 적으로 제거하십시오. 명령을 사용하지 않고

rm을 사용하여 다른 명령을 사용하지 않고 패턴과 일치하는 파일 및 디렉토리를 반복적으로 제거 할 수 있습니까?



답변

귀하의 질문에 직접 대답하기 위해 “아니요-귀하가 설명하는 것을 할 수 없습니다 rm“.

그러나와 결합하여 수행 있습니다find . 여러 가지 방법 중 하나를 수행 할 수 있습니다.

 # search for everything in this tree, search for the file pattern, pipe to rm
 find . | grep <pattern> | xargs rm

예를 들어, 모든 * ~ 파일을 압축하려면 다음과 같이하십시오.

 # the $ anchors the grep search to the last character on the line
 find . -type f | grep '~'$ | xargs rm

주석에서 확장하려면 * :

 # this will handle spaces of funky characters in file names
 find -type f -name '*~' -print0 | xargs -0 rm


답변

“다른 명령을 사용하지 않고”

아니.


답변

Bash를 사용하여 yesglobstar설정하십시오 .

rm basedir/**/my*pattern*

일치하는 파일을 나열 ls -1하기 전에 먼저 예를 들어 시도하십시오 rm.

예를 들어 옵션을 설정 shopt -s globstar합니다.


또는 더 짧은 find변형 :

find -type f -name 'my*pattern*' -delete

또는 GNU의 경우 find:

find -type f -name 'my*pattern*' -exec rm {} +

또는 비 GNU에 대한 또 다른 대안 find(약간 느린) :

find -type f -name 'my*pattern*' -exec rm {} \;

요청에 따라 디렉토리를 제거하려면 위 명령에서 rm로 변경 하고 명령 rm -r에서만 일치를 건너 뛰십시오 .-type ffind


답변

“rm -rf”라고 가정했을 것입니다. 파일 이름의 조합과 * 및? 등 (예 : todays_log_2009 ????. log). 현재 Dir에서 시작하여 해당 패턴에 해당하는 파일을 재귀 적으로 제거합니다.


답변

zsh (1) 을 사용하는 경우 setopt extendedglob.zshrc 에서 “확장 globbing”을 켜십시오 . 패턴 앞에 ‘** /’를 붙이면 재귀 적으로 삭제됩니다.

% rm -rf ** / <패턴>

이있는 경우 그러나, 많은 당신에 의존해야 삭제할 파일 (1)을 찾을 수xargs를 (1) 또는 간부가, 그리고 나 또한 일을하는 것이 좋습니다 쉘 스크립트에서 그.


답변