在Mac上使用空格复制文件

时间:2012-09-26 16:35:19

标签: macos bash google-chrome

我正在尝试在shell脚本中将一组预定义的Chrome书签复制到Chrome将其保存在Mac上的位置(~/Library/Application Support/Google/Chrome/Default)。在脚本中我有:

#!/bin/sh
bookmarks_dir="$HOME/Library/Application\ Support/Google/Chrome/Default"
cp -v "bookmarks/Bookmarks" "$bookmarks_dir"

但是当我跑步时,我得到了:

cp: /Users/aparkin/Library/Application\ Support/Google/Chrome/Default: No such file or directory

如果我复制&将路径粘贴到上面的错误消息中并手动执行cp:

cp -v bookmarks/Bookmarks /Users/aparkin/Library/Application\ Support/Google/Chrome/Default

它复制正常,因此目录确实存在。这似乎是路径中的空间绊倒了。

我错过了什么?我想如果变量用引号括起来,文件名中的空格不再导致问题吗?

1 个答案:

答案 0 :(得分:3)

摆脱\定义中的$bookmarks_dir。它被视为文字\:如果你做了$echo bookmarks_dir,你就会看到它。

\仅在您不在字符串周围添加引号时才有用。所以,

bookmarks_dir=$HOME/Library/Application\ Support/Google/Chrome/Default

也可以。