【问题标题】:Unable to remove file on Linux [closed]无法在 Linux 上删除文件 [关闭]
【发布时间】:2021-04-24 00:35:59
【问题描述】:

我目前连接到一台在 Linux 上运行的远程计算机,并且我有一个随机目录,该目录是在运行我的一个 C 程序后出现的。目录名是这样的形式:'H$'204'blahblah''u$'[]'$'234',很奇怪。

当我尝试通过rm dir_name 删除它时,终端会吐出Illegal variable name. 即使我使用-f 标志也会出现相同的行为。然后我尝试通过单击资源管理器中的目录(在 vscode 上)将其删除,但出现错误提示 Error: ENOENT: no such file or directory.

如果有帮助,我会在 csh shell 上运行它。

更新: 运行:rm ./H<tab> 工作。感谢Jamie Guinan

【问题讨论】:

  • 尝试运行rm ./H<tab>,看看它是否为您完成了名称。此外,在您的程序中,请确保在调用 mkdir() 之前初始化变量。
  • 这是传奇。这对我有用,其中一个斜线实际上应该面向另一个方向。
  • 试试 rm "'H$'204'blahblah''u$'[]'$'234"
  • 在这种情况下,我使用 mc(午夜指挥官)文件管理器。这是最可靠的方法。一旦我找到一个名称中包含“\n”(新行)的文件。我只有在用 mc 浏览时才意识到这一点。

标签: linux unix csh


【解决方案1】:

神奇的词是ls -b。它将以转义的方式显示不可打印的字符,以便您可以将它们输入回来。

【讨论】:

  • 我使用了这个命令,复制了特定目录的输出,然后尝试删除它,但仍然得到相同的行为;即,没有这样的文件或目录。
  • 您必须转义任何特殊字符,至少(从您的示例中)$' 并且取决于您使用的 shell,也可能是 []
猜你喜欢
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2021-02-01
  • 2013-11-24
  • 2014-06-03
  • 1970-01-01
相关资源
最近更新 更多