특정 폴더에서 특정 확장자를 가진 모든 파일을 삭제하는 방법은 무엇입니까?

특정 폴더에서 특정 확장자를 가진 모든 파일을 삭제하는 방법은 무엇입니까?

cd현재/작업 디렉토리를 특정 디렉토리로 설정한 후 (탐색 사용) 다음을 입력합니다.

rm *.xvg

이 명령은 무엇을 합니까? 위 명령이 실제로 실행됩니까?오직확장자가 있는 파일 제거.xvg 오직작업 디렉토리에 있나요?

.xvg위의 명령이 파일 만 삭제하는지 확실히 확인하고 싶었기 때문에 요청하기 전에 이 작업을 시도하는 것이 불안했습니다.작업 디렉토리에 위치.

답변1

네, rm *.xvg그럴 거예요오직디렉토리에서 지정된 확장자를 가진 파일 삭제현재의목차.

좋아요파일을 삭제하려는 디렉터리에 실제로 있는지 확인하는 방법은 pwd현재 디렉터리를 표시하는 명령을 사용한 다음 ls원하는 파일을 찾았는지 확인하는 작업을 수행하는 것입니다.

이 명령을 실행하는 것이 조금 걱정된다면 rm다음 두 가지 작업을 수행할 수 있습니다.

  1. ls *.xvg이 명령의 영향을 받는 파일 목록을 보려면 입력하세요 .

  2. 당신이 하나 가지고 있지 않는 한많은-i파일 수에 따라 언제든지 명령줄 스위치를 사용할 수 있습니다 ( 및 rm에도 있음 ). 이 기능을 사용하면 각 개별 파일을 삭제할 수 있는지 묻는 메시지가 표시되므로 실수로 삭제되는 일이 없도록 할 수 있습니다. (파일이 많으면 지루할 수 있습니다 :)cpmvrm -i *.xvg

답변2

디렉토리로 이동할 필요가 없으며 다음을 사용하십시오.

rm /some/dir/*.xvg 

/som/dir이 존재하지 않는 경로에 오타나 유사한 오류가 있는 경우:

cd /som/dir
rm *.xvg

현재 디렉터리의 모든 .xvg 파일이 실수로 삭제됩니다. 첫 번째 명령은 그렇지 않으므로 다시 CD를 사용할 필요가 없습니다.

또 다른 방법은 find를 사용하는 것입니다.

find /some/dir/ -maxdepth 1 -type f -name "*.xvg" -delete 

답변3

예, 현재 디렉토리에서 로 끝나는 파일 만 rm *.xvg삭제됩니다 . .xvg이유는 다음과 같습니다.

이와 같은 명령을 입력하면 작업은 사용 중인 셸(bash 가정)과 명령 바이너리 간에 나누어집니다.

를 입력하여 바이너리 파일을 찾을 수 있습니다 which rm. 이 작은 프로그램은 파일 연결 해제를 담당합니다. 이와 같은 프로그램은 명령줄에서 시작할 수 있으며 prog arg1 arg2 arg3시작 시 인수 목록을 읽을 수 있습니다. 의 경우 rm삭제할 정규화된 파일 이름 목록으로 해석됩니다. 따라서 파일이 포함된 디렉토리에 있는 경우 foo.bar입력 결과 delete 'foo.*'는 입니다 rm: foo.*: No such file or directory. 파일 패턴 주위의 작은따옴표에 유의하세요. 이는 쉘이 있는 그대로 인수를 전달하도록 지시합니다.

단, rm *.bar동일한 디렉토리에 입력하면 파일이 삭제됩니다. 여기서 일어나는 일은 셸(명령을 입력하는 데 사용하는 프로그램)이 인수를 명령에 전달하기 전에 일부 변환을 수행한다는 것입니다. 그 중 하나는 "와일드카드"라고도 알려진 "파일 이름 확장자"입니다. Bash 파일 이름 확장자 목록을 볼 수 있습니다.여기. 가장 일반적인 확장 중 하나는 *현재 디렉터리의 파일 이름으로 확장된다는 것입니다.

작동 중인 glob을 보는 쉬운 방법은 echo셸을 통해 전달된 모든 인수를 다시 인쇄하는 를 사용하는 것입니다. 따라서 echo *입력은 동일한 디렉토리에 출력됩니다 foo.bar. 따라서 을 입력하면 rm *.bar실제로 쉘이 인수 목록을 확장한 foo.bar다음 이를 rm명령에 전달합니다.

와일드카드를 제어하는 ​​몇 가지 방법이 있습니다. 예를 들어 최신 버전의 bash에서는 재귀적으로 확장되는 globstar라는 옵션을 설정할 수 있습니다. 입력하면 echo **/*.bar모든 하위 폴더로 끝나는 모든 파일 목록이 표시됩니다 .bar. 따라서 rm **/*.barglobstar를 활성화한 상태에서 bash를 입력하면 실제로 하위 폴더에서 일치하는 모든 파일이 재귀적으로 삭제됩니다.

답변4

주문하다:

  rm ./*.pgm

나를 위해 일해

주문하다:

rm *.pgm

잘못된 명령 제공(폴란드어, 번역):

rm: wrong option - '1'
Use "rm ./-1000.pgm" to delete the file '-1000.pgm'.
Write "rm --help" for information.

존재하다

bash --version
GNU bash, wersja 4.4.19(1)-release (x86_64-pc-linux-gnu)

관련 정보