我在这个仓库里做了一个搜索,我没有找到任何类似的问题,或者可能是我的搜索不正确。
我在我的客户端环境中遇到了这个问题,一个自定义应用程序正在创建带有环境变量“$SRCDIR”和“$HOME”的目录,并且创建这些目录的目录本身就是HOME目录路径。如果我说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
如何删除它们?
8条答案
按热度按时间au9on6nz1#
对于垃圾名称,最简单的方法是构造一个只捕获它们的通配符。选择名称的 * 可读 * 部分(例如
_6
子字符串)并将其用星号 Package 。首先尝试一下:如果它只列出垃圾名称,请继续删除它:
如果它还列出了其他名称,请尝试使通配符更具体,在名称中使用其他可读字符:
继续,直到找到只匹配不需要的文件的通配符。
lsmd5eda2#
确定所需文件/文件夹的信息节点编号:
并将其通过管道传输到
rm
:q9rjltbz3#
如果你创建了一个类似--rw-r--的目录。要删除这个文件,请执行以下操作
rm -rf ./--rw-r-r--
whitzsjs4#
在linux下使用zsh shell
然后使用制表符完成删除该目录。
或者如果使用bash
进入那个目录
uklbhaso5#
您可以尝试rm -rf '$HOME' '$SRCDIR',因为单引号会阻止shell变量的扩展。
js81xvg66#
把美元符号去掉。像这样-
甚至
?
符号也是如此。mcvgt66p7#
你可以使用一个c程序来避免shell/escape问题。看看this question的答案。
bksxznpy8#
替代inode方法:
ls-ila
记下inode编号,例如1234567
rm -r $(find -inum 1234567)