[20170301]Linux下刪除怪異檔名.txt

lfree發表於2017-03-01

[20170301]Linux下刪除怪異檔名.txt

--//這幾天一直在測試資料庫線上日誌損壞,使用備庫備用日誌的修復試驗.
--//在測試中不知道為什麼在自己的機器中產生許多怪異的檔案,主要是檔名怪.
--//估計是copy & paste 惹得禍,人在疲憊的情況下很容易犯低階錯誤.^_^

--//我當時採取方法把正常的檔案移動別的目錄,然後再刪除整個目錄的方法,有空測試一下這些檔案如何刪除.

1.建立測試環境:

$ touch ^G
$ touch ^V^V
$ touch a
$ touch -- -a

$ ls -l
total 0
-rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:49:10 ?
-rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:58:08 ??
-rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:58:12 a
-rw-r--r-- 1 oracle oinstall 0 2017-03-01 12:07:34 -a

--//顯示的亂碼,加入-b引數可以顯示
-b, --escape
print octal escapes for nongraphic characters

$ ls -lb
total 0
-rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:49:10 \a
-rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:58:08 \026\026
-rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:58:12 a
-rw-r--r-- 1 oracle oinstall 0 2017-03-01 12:07:34 -a

2.測試如何刪除:
--//使用命令不全的方式,按tab鍵.
$ rm
^G    ^V^V  a

--//linux會提示,輸入^G,在我的windows經過putty連線的輸入ctrl+v,ctrl+g就ok了.

$ rm ^G
/bin/rm: remove regular empty file `\a'? n

$ rm ^V^V
/bin/rm: remove regular empty file `\026\026'? n

3.開頭是-的檔案如何刪除:
--//實際上看我前面建立的例子就知道如何刪除.
$ rm -- -a
/bin/rm: remove regular empty file `-a'? n

--//或者利用相對路徑:
$ rm ./-a
/bin/rm: remove regular empty file `./-a'? n


3.最後find+inode+delete刪除.
$ ls -li
total 0
306643031 -rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:49:10 ?
306643032 -rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:58:08 ??
306643034 -rw-r--r-- 1 oracle oinstall 0 2017-03-01 12:07:34 -a

--//前面的數字就是檔案inode號.
$ find . -inum 306643032 -print
./??
$ find . -inum 306643032 -delete
$ ls -li
total 0
306643031 -rw-r--r-- 1 oracle oinstall 0 2017-03-01 11:49:10 ?
306643034 -rw-r--r-- 1 oracle oinstall 0 2017-03-01 12:07:34 -a

--//linux下命令眾多,也許還有許多,這些就足夠了.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2134525/,如需轉載,請註明出處,否則將追究法律責任。

相關文章