您如何从bash中删除/中的*文件夹?


8

比方说,我有一个命名的文件夹*/。我知道像rm -rf *这样的常用命令将不起作用。有什么帮助吗?


2
从技术上讲,rm *可以删除该文件夹。
Panic Panic 2012年

Answers:


7

使用以下简短命令:

rm /\*

1
那行不通-这是一个目录。
naught101 '09

1
然后使用“ rmdir / \ *”代替。另一种选择是使用'rm -rf / \ *'。但是,如果您犯了一个错误,那么后者会很危险。
Serge 2012年

14

您可以单引号参数以防止shell处理。

rm -r '/*'

使用ls(在包含文件的文件夹中)安全地测试它:

$ ls '*'
ls: *: No such file or directory

在这种情况下,双引号也可以工作,但是如果$涉及到双引号,则不会,因为外壳会假定它是一个变量:

$ ls "foo$bar"
ls: foo: No such file or directory
$ ls 'foo$bar'
ls: foo$bar: No such file or directory

对于GNU rm,您还可以--在文件名参数之前添加,以防止将其解析为参数。这样您就可以删除命名文件,-rf而不会出现问题。


不需要。您可以简单地对'*'进行转义,以使它不会像Serge所回答的那样被shell扩展。
darnir 2012年

5
@darnir如果您不喜欢它,则不需要使用它。但是,您必须知道使用Serge的方法(考虑&)时要转义哪些字符,然后分别转义它们,这很容易比单引号更费力。因此,我认为个人逃避劣质,并发布了这种选择。
丹尼尔·贝克

3
@Serge我并不是说您的答案很糟糕。它完成了工作,并被接受了。但是,如果有多种(合理地不同)方式来实现优点和缺点的不同,请随时列出所有这些方式。它们可能无法在所有情况下都起作用,因此最好有其他选择。另请注意,存在类似(不同)问题的用户可能会向Google提出问题。如果扩大范围会引发可以帮助更多人的问题,这也是一个好主意。撰写更广泛的答案才是开始。
丹尼尔·贝克

1
我无意让我的所有答案都被接受并获得最高的痛苦。我花了几天的时间(本周末)在其中一些网站上。第一印象是我可以与人们分享我的知识,这就是为什么我开始提供答案的原因。因此,我在这三天内获得了760分。是的,从不同角度来看,我的某些回答不是高端品质。但是所有这些都是正确的。但是现在我看到大多数在这里提出问题的人都是学童,他们不想花一秒钟时间自己找到解决方案。我要花时间做什么?
Serge 2012年

1
@Serge不确定您的评论是关于什么的。从您提到它后所看到的内容来看,您为网站做出了令人印象深刻的开端。如果有什么我可以帮助您使用网站的内容,或者您​​想讨论的其他内容,请随时与我聊天。我现在处于UTC + 2,所以您可能不会很快得到答复。关于“初学者”问题:请记住,某些信息容易发现。bash如果您不知道要搜索什么,则阅读完整的手册页会花费一些时间。
丹尼尔·贝克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.