Filesystems
FreeBSD:目錄名為 ^C(真的!) - 如何刪除?
我打錯了:
$ history 169 9:34 la /usr/local/etc/ 170 9:35 sudo mkdir ^C 171 9:36 sudo mkdir /usr/local/etc/dnsmasq.d
現在我有一個名為 ^C (ctrl+C) 的文件!!當我使用時,
ls
我只看到一個問號(可能是由於語言環境?)% ls -al total 60 drwxr-xr-x 2 root wheel 512 Jan 21 09:35 ? <- this one drwxr-xr-x 5 admin wheel 512 Jan 21 16:24 . drwxr-xr-x 3 root wheel 512 Jan 20 14:29 .. -rw-r--r-- 1 admin nobody 1114 Jan 20 19:10 .cshrc -rw------- 1 admin wheel 6002 Jan 21 15:27 .history -rw-r--r-- 1 admin nobody 182 Jan 20 14:29 .login -rw-r--r-- 1 admin nobody 91 Jan 20 14:29 .login_conf -rw------- 1 admin nobody 301 Jan 20 14:29 .mail_aliases -rw-r--r-- 1 admin nobody 271 Jan 20 19:04 .mailrc -rw-r--r-- 1 admin nobody 726 Jan 20 19:05 .profile -rw------- 1 admin nobody 212 Jan 20 14:29 .rhosts -rw-r--r-- 1 admin nobody 911 Jan 20 19:06 .shrc drwx------ 2 admin nobody 512 Jan 20 15:05 .ssh drwxr-xr-x 2 admin wheel 512 Jan 20 19:08 bin
和
% ls -i 3611537 ? 3611534 bin
我想刪除這個文件。我嘗試
mv
使用製表符完成時顯示:% mv ^C/ bin/
顯然我不能輸入 ^C :-/ 如何刪除這個文件?
^V
(ctrl
+v
) 用作下一次按鍵的一種轉義序列,插入關聯的值,而不是採取通常關聯的任何操作。利用這一點,
^V^C
(ctrl
+v
,ctrl
+c
) 應該可以在終端中輸入您的困難文件名。
您也可以通過 inode 刪除文件:
$ ls -i1 290742 foo 293246 ^C $ find . -inum 293246 -delete
無論你做什麼,看在上帝的份上,不要放在
-delete
前面-inum
:$ touch foo bar baz quux $ find . -name '*u*' -delete $ ls bar baz foo $ find . -delete -name 'b*' find: `./baz': No such file or directory find: `./bar': No such file or directory $ ls $
恭喜,您剛剛清除了所有文件。有了
find
,參數順序很重要!