Linux에서 특정 문자열로 시작하는 모든 파일을 제거하는 방법 모든 파일을 찾아서 하나의 쉘 명령을

NAME디렉토리 트리에서 이름 으로 시작하는 모든 파일을 찾아서 하나의 쉘 명령을 사용하여 모든 파일을 제거해야합니다.



답변

이름이있는 모든 파일을 삭제하려면

find -name . 'name*' -exec rm {} \;


답변

파일 이름이 “foo”로 시작하는 현재 디렉토리 및 해당 서브 디렉토리의 모든 파일을 삭제하십시오.

$ find . -type f -name foo\* -exec rm {} \;

주의 :주의해서 사용하십시오 – 먼저 백업하십시오 – 또한 먼저 드라 이런을하십시오.

$ find . -type f -name foo\*

삭제 될 파일 이름 만 알려줍니다.


답변

나는이 작업을 시도하여 아래 명령을 시도했다.

rm -rf Example*

여기서 “예”는 모든 파일에 공통적 인 텍스트입니다.


답변

당신은 사용할 수 있습니다 find:

find . -name "name*" -exec rm {} \;


답변

globstar옵션을 사용하면 (로 활성화 shopt -s globstar) :

rm -f **/NAME*

**/팽창은하는 ./, */, */*/, */*/*/당신이있는 경우 등 디렉토리 로 시작하는 이름을 NAME명령은 불평 할 rm디렉토리를 제거 할 수 있지만, 그게 다야.

glob이 많은 파일과 일치하는 경우 명령 행 길이 제한이 발생할 수 있습니다.

또는 rm가능한 한 적은 호출로 명령 행 길이 제한이 적용되지 않습니다.

find . -type f -name 'NAME*' -exec rm -f {} +

( 문 을 닫는 +대신에 통지하십시오 .)\;-exec


답변

find . -name 'foo'* -type f -delete 가장 간단한 답변처럼 보입니다.

-delete어떤 파일이 삭제되는지보기 전에 플래그 없이 이것을 실행할 수 있습니다 .


답변

파일 / 폴더의 “Inode”번호를 검색 한 다음 inode 번호를 사용하여 삭제하십시오. 아래는 예입니다.

ls -il
3407873 drwxr-xr-x. 2 root   root      4096 Mar 30 07:49 p

find . -inum 3407873 -exec rm -rf {} \;