复制文件:名称包含空格

时间:2012-10-09 21:44:40

标签: shell unix copy solaris

我有一个大型shell脚本来处理每个Solaris系统的文件。

在开始时,脚本会创建一个变量FILENAME 有时人们创建包含空格的目录/文件。 e.g。

/users/ldap/Anukriti's System Backup/BACKUP/workspace/BP8/scripts/yui/editor/simpleeditor.js

稍后在脚本中我运行

cp $FILENAME $DESTDIR/

您可以想象这总是失败,因为以下内容无效。

cp /users/ldap/Anukriti's System Backup/BACKUP/workspace/BP8/scripts/yui/editor/simpleeditor.js $DESTDIR

我已尝试将变量放入引号中,但这不起作用。我之前使用过find -exec选项,但是对于这种情况并不是真正的选择,特别是因为Solaris不支持-wholename或-path选项

我能在这做什么?

3 个答案:

答案 0 :(得分:8)

您只需使用引号保护变量:

cp "$FILENAME" "$DESTDIR"

注意

不要使用单引号',不能以这种方式扩展变量。

答案 1 :(得分:2)

看起来我需要使用花括号进行变量扩展和双引号

cp“$ {FILENAME}”$ DESTDIR

答案 2 :(得分:0)

确保

  • $DESTDIR存在
  • 是目录
  • 并且是的,对两个变量使用双引号并删除尾随/

你可能不相信,但那是你的问题。 : - )