【问题标题】:Deleting strange directories in unix在 unix 中删除奇怪的目录
【发布时间】:2012-10-19 06:27:30
【问题描述】:

我在删除 unix 中的某些文件夹时遇到了一些问题。

目录1:

?0\'

目录 2:

-1\'

我想递归删除它们,比如

rm -rf -1\'

不确定如何转义引号、破折号和问号。

【问题讨论】:

  • 还有什么问题?
  • 如何删除名称为 ?0\' 和 -1\' 的文件夹
  • 您可以使用午夜指挥官(mc 命令)或任何其他图形/伪文件浏览器。
  • 在一个相关的问题中,如果您的文件名称包含不可打印的字符等,您可能别无选择,只能使用rm -i * 逐步遍历目录中的每个文件并回答 y/n if你想删除它。

标签: unix quotes rm


【解决方案1】:

当它们是可疑字符时,您需要使用引号,然后在引号之外使用通配符。如果没有引号,这些角色会想要执行其他任务。

rm -rf -- *"\'"

感谢 osgx 的评论

【讨论】:

  • 另外,在-rf 之后添加-- 会很有用:-- 之后不会有任何选项,即使它看起来像选项。因此,完整答案(基于您的变体):rm -rf -- *"\'"
【解决方案2】:

小心;在对奇怪的目录名称执行任何 rm -fr 之前,请仔细检查。

以破折号- 开头的文件名(目录名)的标准技巧是在名称前加上./,这样它就不再以- 开头了:

rm -fr ./-1??

另一个目录可能通过以下方式识别:

rm -fr ./?0??

我至少会跑:

echo ./-1?? ./?0??

在尝试rm 命令之前,确保只选择正确的目录。如果您不确定 rm 命令是否正在执行您想要的操作,则该命令很危险。

使用问号的表示法避免了必须引用问号、反斜杠和单引号,部分原因是怀疑终端上显示的可能不是文件系统中的名称。您可能需要做进一步的工作来识别名称,例如 ls | od -c 或类似的命令来验证目录名称的准确拼写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 2022-01-01
    • 2011-08-26
    • 2014-10-06
    • 2015-11-24
    • 2012-01-31
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多