由于路径中的引号,rm是否失败?

时间:2016-12-26 01:00:01

标签: bash quotes

我正在尝试使用rm程序清空目录。我将路径捕获到一个变量中并像这样使用它:

rm $export_folder_path
rm: “/Users/ricky/Documents/Folder”: No such file or directory

路径上肯定有这样的目录。当我手动尝试这个,没有变量时,它按预期工作。

rm "/Users/ricky/Documents/Folder"

2 个答案:

答案 0 :(得分:3)

您在export_folder_path的作业中使用了精美的引号。这些倾斜的Unicode引号不会被bash识别为引号,因此被视为文字。

这通常是因为来自博客的复制品,或使用不适用于Word或macOS等程序员的编辑器或操作系统。

在脚本中用常规ASCII双引号替换它们,并在编辑器或操作系统中禁用“智能引号”。

答案 1 :(得分:1)

如果您确定要删除目录及其内容,我会建议:

rm -rf -- "$export_folder_path"

双引号将处理目录名称中的任何空格。