我在这个库中search,我没有发现任何类似的问题,或者可能是我的search是不正确的。
我在我的客户端环境中遇到这个问题,自定义应用程序正在创build一个环境variables为“$ SRCDIR”和“$ HOME”的目录,而在创build这些目录的目录中,本身就是HOME目录path。 如果我说rm -rf $HOME
那么当前目录$ HOME下的所有文件和子目录都将被删除。 如何删除这些不需要的目录。
-rw-r--r-- 1 grp domain users 418051450 Apr 18 18:09 $SRCDIR -rw-r--r-- 1 grp domain users 418051450 Apr 18 18:09 $HOME
还有一些目录是垃圾字符,如下例所示。
-rwxr-xr-x 1 grp domain users 0 Feb 7 2106 ??????w?O???*????_6??t??Ó¡?>?tP??Ñ?|?C
我如何删除它们?
对于垃圾名称,构建一个只捕获它们的通配符将是最容易的。 选择名称的可读部分(例如_6
子字符串)并用星号包装。 首先尝试一下:
ls *_6*
如果仅列出垃圾名称,请继续删除垃圾名称:
rm *_6*
如果还列出其他名称,请尝试使通配符更具体,使用名称中的其他可读字符:
ls *w*_6*tP*N*x*
继续进行,直到找到只匹配不需要的文件的通配符。
如果你创建一个像–rw-rr–的目录。 要删除这个文件,请执行fo rm -rf ./--rw-rr--
确定必要文件/文件夹的inode数量:
# ls -ila 14549980 drwxr-xr-x 3 root root 4096 Mar 5 20:45 ">?<
并将其管道到rm
:
find . -inum 14549980 -exec rm -ir {} \;
在linux下试试zsh shell
[root@rhel5-8 ~]# zsh [root@rhel5-8]~
然后使用选项卡完成删除该目录。
或者如果使用bash
[root@rhel5-8 ~]# cd "??????w?O???*????_6??t??Ó¡?>?tP??Ñ?|?C???????>?̤-???y?X???N?x??H?????Ч)?n?5??{@?~]?"
进入该目录
你可以试试rm -rf'$ HOME''$ SRCDIR',因为单引号会阻止shell变量的扩展。 尝试与bash和ksh。
只是逃避美元符号。 试试像这样 –
rm -rf \$HOME
同样的甚至?
符号。
您可以使用c程序来避免shell / escape问题。 看看这个问题的答案。