[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下命令众多,也许还有许多,这些就足够了.