【发布时间】:2012-09-30 07:21:56
【问题描述】:
我有一个大型 shell 脚本来处理我的每个 Solaris 系统的文件。
脚本一开始创建了一个变量 FILENAME 有时人们会创建包含空格的目录/文件。 例如
/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 选项
我可以在这里做什么?
【问题讨论】:
-
请在调用副本之前添加
echo cp "$FILENAME" "$DESTDIR",将cp行更改为cp "$FILENAME" "$DESTDIR"并发布输出 -
来自
echo cp "$FILENAME" "$DESTDIR"的结果。cp /users/ldap/Anukriti's System Backup/BACKUP/workspace/BP8/scripts/yui/editor/simpleeditor.js /mnt/nastmp/dev/oscar/ -
由于某种原因,您拒绝发布错误消息,否则很难知道您做错了什么。
-
给我们
sh -x /path/to/bigscript的最后几行 -
@MiserableVariable
cp: cannot stat Backup/BACKUP/workspace/BP8/scripts/yui/editor/simpleeditor.js: No such file or directory