cyberquarks Asked: 2021-07-08 07:50:01 +0800 CST2021-07-08 07:50:01 +0800 CST 2021-07-08 07:50:01 +0800 CST 从 Linux 中删除 Windows $RECYCLE.BIN 文件夹 772 我在Linux机器上安装了一个Windows使用的硬盘驱动器,确切地说是Raspberry Pi。 尝试删除回收站文件夹会引发此错误: $ rm "$RECYCLE.BIN" rm: cannot remove '.BIN': No such file or directory 删除此类文件夹的正确方法是什么? windows linux 1 个回答 Voted Best Answer CoderChristopher 2021-07-08T08:12:10+08:002021-07-08T08:12:10+08:00 所以问题是你正在使用的命令 shell bash 将 $ 后面的任何文本解释为环境变量。如果您键入以下命令,您可以看到这一点: echo $PWD #outputs on my system: /home/chris ^在大多数 linux 系统上,这会打印描述当前工作目录的变量。 当您在 bash 表达式中使用双引号时,这实际上告诉 bash '我希望您正常解释这些内容中的所有内容',这在您的情况下意味着将环境变量转换为它们的关联值。由于我想您的 $RECYCLE 环境未设置为任何值,因此该值是零长度字符串。因此,您引用的表达式的结果是“.BIN”。由于 .BIN 不是一个有效的文件或目录 rm 会抱怨。 正确的解决方案是在 bash 中你想在这些表达式周围使用单引号 '。这将告诉 bash 不要进行环境变量扩展或其他扩展,并完全按照命令显示的内容发送包含文本。 考虑到所有这些,您正确的命令行表达式将是: rm '$RECYCLE.BIN' 另外另一方面, rm 可能仍然会抱怨,因为如果我没记错的话 $RECYCLE.BIN 是一个目录。如果没有 -r 命令行选项,它会说 rm 无法删除目录。 要阅读更多 bash/rm/环境变量详细信息,请在控制台中键入: man bash man rm man environment
所以问题是你正在使用的命令 shell bash 将 $ 后面的任何文本解释为环境变量。如果您键入以下命令,您可以看到这一点:
^在大多数 linux 系统上,这会打印描述当前工作目录的变量。
当您在 bash 表达式中使用双引号时,这实际上告诉 bash '我希望您正常解释这些内容中的所有内容',这在您的情况下意味着将环境变量转换为它们的关联值。由于我想您的 $RECYCLE 环境未设置为任何值,因此该值是零长度字符串。因此,您引用的表达式的结果是“.BIN”。由于 .BIN 不是一个有效的文件或目录 rm 会抱怨。
正确的解决方案是在 bash 中你想在这些表达式周围使用单引号 '。这将告诉 bash 不要进行环境变量扩展或其他扩展,并完全按照命令显示的内容发送包含文本。
考虑到所有这些,您正确的命令行表达式将是:
另外另一方面, rm 可能仍然会抱怨,因为如果我没记错的话 $RECYCLE.BIN 是一个目录。如果没有 -r 命令行选项,它会说 rm 无法删除目录。
要阅读更多 bash/rm/环境变量详细信息,请在控制台中键入: