.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
셸 옵션에 의해 제어됩니다 .dotglob
man page
설정된 경우 bash는 경로 이름 확장 결과에 "."로 시작하는 파일 이름을 포함합니다.
기능이므로 dotglob을 설정하지 않으면 다른 명령(예: etc. )이 dotglob으로 시작하는 파일을 처리하지 못하게 Bash
됩니다 . 내장된 shopt를 사용하여 이 설정이 시스템에 설정되어 있는지 확인할 수 있습니다 . 이러한 종류의 문제가 있는 경우 다음과 같아야 합니다.grep
ls
.
dotglob
off
$ 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 .[^.]* *