すべて削除したい.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
これで問題が解決することを願っています。
これは、man page
で説明されているBash
シェルオプションによって制御されるdotglob
機能です。
設定されている場合、bashには「。」で始まるファイル名が含まれます。パス名展開の結果。
Bash
機能であるため、grep
、ls
などの他のコマンドは、dotglobも設定されていない場合、.
で始まるファイルを処理しません。組み込みのshoptを使用して、システムにdotglob
が設定されているかどうかを確認できます。このような問題が発生した場合は、off
である必要があります。
$ shopt | grep dotglob
dotglob off
shopt
が設定されている場合、*
はallファイルと一致します。これらのファイルも.
で始まります。次の例をご覧ください。
$ 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 .[^.]* *