때때로 당신은 필요합니다 디렉토리에서 거의 모든 파일 제거,하지만 그중 하나 또는 일부를 유지하려고합니다. 숫자가 많을 때 하나씩 이동하는 것은 지루한 작업입니다. 최선의 선택은 아닙니다. Linux에서 작업을 훨씬 더 쉽게 만들고 필요한 모든 것을 한 번에 제거 할 수있는 방법이 있습니다.
예를 들어 특정 이름으로 시작하거나 특정 확장자가있는 항목 만 제거 할 수 있습니다. 가능한 모든 것사실 다른 경우에는 이미 LxA에서 유사한 튜토리얼을 보여주었습니다. 여기에서는 저장하려는 파일을 제외하고 원하는 모든 파일을 삭제할 수 있도록 튜토리얼을 단계별로 간단하게 수행 할 수 있습니다.
그리고 가장 좋은 점은 프로그램을 설치할 필요가 없습니다. rm 및 find와 같은 명령으로 쉽게 수행 할 수 있습니다. 즉, Linux 배포판에 이미 사전 설치된 프로그램입니다. 물론이 방법은 패턴을 찾고 원하는 항목 만 제거하기 위해 해당 일치 항목을 사용하는 방법을 기반으로합니다.
글쎄, 거기를 제거하기 위해 여러 대안, 그들은 무엇인가…
rm을 사용하여 디렉토리에서 파일 제거
음, 사용하려면 rm 명령 느낌을 없애려면 패턴을 식별하는 몇 가지 방법을 먼저 알아야합니다.
- * (패턴 목록) -XNUMX 개 이상의 지정된 패턴 발생 일치
- ? (패턴 목록) -지정된 패턴이 XNUMX 개 또는 XNUMX 개 일치합니다.
- + (패턴 목록) -지정된 패턴의 하나 이상의 발생과 일치
- @ (패턴 목록) -지정된 패턴 중 하나와 일치
- ! (패턴 목록) -주어진 패턴 중 하나를 제외한 모든 항목과 일치
에 extglob 활성화 이를 사용하려면 먼저 다음 명령을 실행해야합니다.
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
이제 rm을 사용하여 원하는 것을 제거 할 수 있습니다. 예를 들면 이름과 일치하는 파일을 제외한 모든 파일을 디렉토리에서 제거합니다. «Lxa»:
rm -v !("lxa")
지정할 수도 있습니다. 삭제하지 않을 두 개 이상의 이름. 예를 들어, "lxa"및 "desdelinux"를 제거하지 않으려면 :
rm -v !("lxa"|"desdelinux")
모든 파일을 삭제할 수 있습니다. 확장자가있는 것 빼기 .mp3. 예를 들면 :
rm -v !(*.mp3)
끝으로 돌아가서 extglob 비활성화:
shopt -u extglob
찾기를 사용하여 디렉토리에서 파일 제거
rm의 또 다른 대안은 find를 사용하여 기분을 제거하십시오.. rm과 함께 pipe 및 xargs를 사용하거나 -delete 옵션을 사용하여 찾을 수 있습니다. 즉, 일반 구문은 다음과 같습니다.
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
예를 들어, 확장자를 가진 파일을 제외하고 디렉토리의 모든 파일을 삭제하십시오. .jpg, 둘 다 동일한 결과를 얻으므로 다음 두 명령 중 하나를 사용할 수 있습니다.
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
대신 원하는 경우 추가 패턴 추가, 당신도 할 수 있습니다. 예를 들어, 디렉토리에서 .pdf 또는 .odt를 제거하고 싶지 않다고 가정 해보십시오.
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
물론, | 이전 예제에서와 같이 xargs. 그건 그렇고, 우리는 -부정하지 말고 그러나이를 제거하여 긍정적으로 만들 수 있습니다. 즉, 일치하는 패턴을 제거하고 제외하지 않도록 할 수 있습니다.
GLOBIGNORE 변수를 사용하여 디렉토리에서 파일 삭제
마지막으로 또 다른 대안 찾고 rm을 찾고 제거하거나 제외하려는 파일을 가리키는 환경 변수를 사용하고 있습니다. 예를 들어 Downloads라는 디렉토리에있는 모든 파일을 삭제하고 .pdf, .mp3 및 .mp4 파일을 저장한다고 가정합니다. 이 경우 다음을 수행 할 수 있습니다.
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE