复制文件:名称包含空格

问题描述 投票:0回答:3

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

在一开始,脚本创建了一个变量FILENAMES,有时人们会创建包含空格的目录文件,如:FILENAMES。

/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

我试过把变量放在引号里,但这不起作用。我以前使用过带有-exec选项的find,但在这种情况下,这并不是一个真正的选项,尤其是Solaris不支持-wholename或-path选项。

我可以在这里做什么?

shell unix copy solaris
3个回答
9
投票

你只需要用引号来保护变量。

cp "$FILENAME" "$DESTDIR"

注意

不要使用单引号 ',变量不能这样展开。


2
投票

看来我需要使用大括号来扩展变量,并使用双引号。

cp "${FILENAME}" $DESTDIR

0
投票

确保

  • $DESTDIR 存在
  • 是一个目录
  • 是的,两个变量都用双引号,并去掉尾部的 /.

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

© www.soinside.com 2019 - 2024. All rights reserved.