저는 새로운 Linux 사용자입니다. 이제 다운로드 디렉터리의 파일을 정리해야 합니다. 실제로 다음 형식의 파일을 제외하고 ~/Download/ 폴더의 모든 파일을 삭제하고 싶습니다.
1.*.iso - 모든 iso 형식 파일.
2.*.zip - 모든 파일은 zip 형식입니다.
Linux, OS X 또는 Unix 계열 시스템의 bash 쉘에서 특정 파일을 어떻게 삭제합니까?
Bash 쉘은 다음과 같은 풍부한 파일 패턴 일치 문자를 지원합니다.
1.* - 모든 파일과 일치합니다.
2.? - 파일 이름의 단일 문자와 일치합니다.
3.[...] - 둘러싸는 괄호 안의 모든 문자와 일치합니다.
전략 #1: 확장된 패턴 일치 문자를 만나보세요
여기서 시스템에 내장된 shopt 명령을 사용하여 셸에서 extglob 옵션을 활성화한 다음 확장된 패턴을 사용할 수 있습니다. 패턴 일치 문자 , 이러한 패턴 일치자는 다음과 같습니다.
1.?(패턴 목록) - 주어진 패턴을 0개 또는 1개와 일치시킵니다.
2.*(Pattern List) - 주어진 패턴과 0번 이상 일치합니다.
3.+(패턴 목록) - 주어진 패턴을 한 번 이상 일치시킵니다.
4.@(패턴 목록) - 주어진 패턴을 한 번 일치시킵니다.
5.!(패턴 목록) - 주어진 패턴과 일치하지 않습니다.
패턴 목록은 |로 구분된 하나 이상의 패턴(파일 이름)입니다.
먼저 extgolb 옵션을 켜세요:
shopt -s extglob
Bash에서 .zip 및 .iso 파일을 제외한 모든 파일을 삭제하세요.
rm 명령의 구문 형식은 다음과 같습니다.
## 仅保留 file1 文件 ## rm !(file1) ## 仅保留 file1 和 file2 文件## rm !(file1|file2) ## 仅保留 zip 文件 ## rm !(*.zip) ## 仅保留 zip 和 iso 文件 ## rm !(*.zip|*.iso) ## 你也可以使用完整的目录 ## rm /Users/vivek/!(*.zip|*.iso|*.mp3) ## 也可以传递参数 ## rm [选项] !(*.zip|*.iso) rm -v !(*.zip|*.iso) rm -f !(*.zip|*.iso) rm -v -i !(*.php)
전략 #2: bash의 GLOBIGNORE 변수를 사용하여 지정된 파일을 제외한 모든 파일을 삭제합니다.
bash(1) 매뉴얼 페이지에서 발췌:
콜론으로 구분된 패턴입니다. 경로 확장을 통해 무시할 파일 집합을 정의하는 목록입니다. 경로 확장 패턴과 일치하는 파일이 GLOBIGNORE의 패턴과도 일치하는 경우 일치 목록에서 제거됩니다.
모든 파일을 삭제하고 zip 및 iso 파일만 유지하려면 GLOBIGNORE를 다음과 같이 설정합니다.
## 只在 BASH 中可行 ## cd ~/Downloads/ GLOBIGNORE=*.zip:*.iso rm -v * unset GLOBIGNORE
전략 #3: find 명령을 사용하여 다른 모든 파일을 삭제하고 zip 및 iso만 유지합니다. 파일
tcsh/csh/sh/ksh 또는 다른 쉘을 사용하는 경우 Unix 계열 시스템에서 다음 find 명령 구문을 사용하여 파일을 삭제할 수 있습니다:
find /dir/ -type f -not -name '匹配模式' -delete
또는
## 对于怪异的文件名可以使用 xargs ## find /dir/ -type f -not -name '匹配模式' -print0 | xargs -0 -I {} rm {} find /dir/ -type f -not -name '匹配模式' -print0 | xargs -0 -I {} rm [选项] {}
~/source 디렉터리에서 php 이외의 파일을 삭제하려면 다음을 입력하세요.
find ~/sources/ -type f -not -name '*.php' -delete
또는
find ~/sources/ -type f -not -name '*.php' -print0 | xargs -0 -I {} rm -v {}
Keep only *. zip 및 * .iso 파일의 구문은 다음과 같습니다.
find . -type f -not \( -name '*zip' -or -name '*iso' \) -delete
특정 파일 삭제와 관련된 더 많은 쉘 기사를 보려면 PHP 중국어 웹사이트를 참고하세요. !