rm 와일드카드가 작동하지 않습니다

rm 와일드카드가 작동하지 않습니다

.swp모든 파일을 재귀적으로 삭제 하고 싶습니다 . 하지만:

rm -r *.swp

다음을 제공합니다:

rm: cannot remove ‘*.swp’: No such file or directory

확실히 하기 위해 ls -all다음과 같이 가정합니다.

total 628
drwxr--r--.  8 przecze przecze   4096 Aug  3 18:16 .
drwxr--r--. 31 przecze przecze   4096 Aug  3 18:14 ..
-rwxrwxr-x.  1 przecze przecze    108 Jul 28 21:41 build.sh
-rwxrwxr-x.  1 przecze przecze 298617 Aug  3 00:52 exec
drwxr--r--.  8 przecze przecze   4096 Aug  3 18:08 .git
drwxrwxr-x.  2 przecze przecze   4096 Aug  3 18:14 inc
-rw-rw-r--.  1 przecze przecze    619 Aug  3 00:52 main.cc
-rw-r--r--.  1 przecze przecze  12288 Aug  3 17:29 .main.cc.swp
-rw-rw-r--.  1 przecze przecze    850 Aug  1 00:30 makefile
-rw-------.  1 przecze przecze 221028 Aug  3 01:47 nohup.out
drwxrwxr-x.  2 przecze przecze   4096 Aug  3 00:52 obj
drwxrwxr-x.  2 przecze przecze   4096 Aug  3 00:52 out
drwxrwxr-x. 12 przecze przecze   4096 Aug  3 18:14 runs
-rwxr--r--.  1 przecze przecze  23150 Aug  2 18:56 Session.vim
drwxrwxr-x.  2 przecze przecze   4096 Aug  3 18:14 src
-rw-rw-r--.  1 przecze przecze  13868 Jul 31 19:28 tags
-rw-rw-r--.  1 przecze przecze   2134 Aug  3 00:31 view.py
-rw-r--r--.  1 przecze przecze  12288 Aug  3 17:29 .view.py.swp

*.swp그래서 삭제할 파일이 있습니다 ! rm .build.sh.swp그 중 하나를 성공적으로 삭제했습니다 . 내가 뭘 잘못했나요?

답변1

포인트 매칭을 시도해보세요:

$ rm -r .*.swp

이것이 귀하의 문제를 해결하기를 바랍니다.

답변2

해당 기능은 아래 설명된 대로 Bash셸 옵션에 의해 제어됩니다 .dotglobman page

설정된 경우 bash는 경로 이름 확장 결과에 "."로 시작하는 파일 이름을 포함합니다.

기능이므로 dotglob을 설정하지 않으면 다른 명령(예: etc. )이 dotglob으로 시작하는 파일을 처리하지 못하게 Bash됩니다 . 내장된 shopt를 사용하여 이 설정이 시스템에 설정되어 있는지 확인할 수 있습니다 . 이러한 종류의 문제가 있는 경우 다음과 같아야 합니다.grepls.dotgloboff

$ shopt | grep dotglob
dotglob         off

shopt설정이 *일치 한다면모두.이 예를 보세요 :

$ touch a b c .d
$ ls *
a  b  c
$ ls *d
ls: cannot access '*d': No such file or directory
$ shopt -s dotglob
$ shopt | grep dotglob
dotglob         on
$ ls *
.d  a  b  c
$ ls *d
.d

닫혀 dotglob도 현재 디렉터리의 파일과 숨겨진 파일을 처리하는 패턴을 만들 수 있습니다.

ls .[!.]* *

또는

ls .[^.]* *

관련 정보