파일 이름에 특정 문자열이 포함 된 모든 파일을 삭제 하시겠습니까?


22

워드 프레스 테마를 변경했습니다. 오래된 것은 서버에 너무 많은 이미지를 만들었습니다. 내 새 테마에는 필요하지 않으므로 모두 제거하고 싶습니다. 어떻게해야합니까?

예를 들어 :
기본 이미지 :12_angry_men_lone_holdout.jpg

삭제하고 싶습니다 :

12_angry_men_lone_holdout-290x166.jpg
12_angry_men_lone_holdout-700x300.jpg 
12_angry_men_lone_holdout-50x50.jpg

우분투 Digitalocean 사용 13.10.


터미널 유형 man rm에서 rm 명령의 매뉴얼 페이지를보십시오.
hmayag


이 이미지는 WorldPress 미디어 라이브러리에 업로드 된 이미지에서 자동으로 생성 된 썸네일 인 것 같습니다. 그렇다면 서버의 터미널에서 해당 파일을 삭제하지 마십시오. 워드 프레스 관리 페이지를 열고 '설정'> '미디어'를 엽니 다. 원하는 섬네일 이미지 크기를 설정하십시오. 그런 다음 플러그인 썸네일 재생을 설치하고 모든 썸네일을 다시 만드십시오 (미디어 라이브러리의 이미지 양에 따라 몇 분이 걸릴 수 있음).
Bob

답변:


22

동일한 폴더에있는 경우 * 와일드 카드를 사용하여 다음을 수행하십시오.

rm *text*

text파일 이름에 포함 된 문자열은 어디에 있습니까 ?


실제로 그것은 하나의 디렉토리가 아니지만 지금은 하나씩 할 수 있습니다. 고맙습니다!
Ibrahim Mumcu

27

find이름에 "text"가있는 파일을 재귀 적으로 찾고 삭제하는 데 사용하십시오 .

find -type f -name '*text*' -delete

삭제하지 않으려는 파일을 삭제하지 않도록하기 전에 find -type f -name '*text*'(없이 -delete)를 실행할 수도 있습니다 .


실제로 검색 문자열의 어느 곳에 나 와일드 카드를 배치 할 수 있으므로 -name '12_angry_men_lone_holdout-*.jpg'귀하의 경우에 더 적합 할 수 있습니다.


파일 경로를 나타낼 필요가 없습니다
Avinash Raj

@AvinashRaj 첫 번째 매개 변수가 경로가 아닌 find경우 현재 작업 디렉토리를 검색하십시오.
n.st

누군가 넣어 현재 작업 디렉토리 내부에서 검색을 찾은 직후.
Avinash Raj

1
@AvinashRaj 중복됩니다. 다음과 같이 man find: 경로가 제공되지 않으면 현재 디렉토리가 사용됩니다.
n.st

@AvinashRaj 실제로 경로 필요 하기 때문에 POSIX 사양을 나타 냅니다 . 기본값 은 GNU find에 의해 추가 된 수정입니다. 이것이 Unix & Linux 라면, 나는 그것을 나의 대답에 추가 할 것이지만, 우분투는 기본적으로 GNU find를 제공하기 때문에 새로운 이민자를 필요 이상으로 혼동하지 않을 것입니다. ;)find.
n.st

1

이 시도:

rm -rf 12_angry_men_lone_holdout-*

그러면 keep 12_angry_men_lone_holdout.jpg크기가 (290x166) 인 파일 이 제거 됩니다.

기억해주세요

rm -rf 12_angry_men_lone_holdout.*

필요한 기본 파일도 삭제됩니다.


0
find . -type f -name '*[0-9]x[0-9]*' -delete

부모 디렉토리에서 이것을 실행하십시오. 숫자 뒤에 'x'문자가 있고 이름에 다른 숫자가있는 모든 파일이 삭제됩니다.

이름에 위의 패턴이 포함되어있는 경우 원본 파일도 삭제 될 수 있으므로주의하십시오. 이름이 같은 파일이 있는지 확인하려면 '-delete'없이 먼저 실행하십시오. 이 경우 더 제한적인 패턴 만 찾으면됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.