【发布时间】:2011-02-02 19:04:02
【问题描述】:
我有一个文件列表,我试图在 bash shell 脚本中复制和移动(使用 cp 和 mv)。我遇到的问题是,我无法让任一命令识别大量文件,这似乎是因为文件名包含空格和/或 unicode 字符。我找不到任何开关来解码/重新编码这些字符。相反,例如,如果我复制“文件名.xml”,我会得到“*.xml”和一个脚本错误,即我的结果中找不到该文件。有谁知道将处理这些文件的设置或命令?
编辑(添加当前代码): 当我跑步时:
MacBookPro:Desktop$ ./script.sh
#!/bin/sh
dateVar=`date +%Y-%m-%d`
mkdir /Volumes/Documents/SMSarchive/$dateVar
cd /Volumes/Documents/SMSarchive/SMSdrop
for i in *.xml
do
cp $i /Volumes/Documents/SMSarchive/$dateVar/$dateVar-$i
done
我收到消息:
用法:cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] 源文件目标文件 cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] 源文件...目标目录
...当它点击“cp”命令时。脚本实际上还有更多内容,可以进一步处理复制的文件。使用“常规”文件名,例如'file.xml',一切正常。只有带有空格或 Unicode 字符的文件才有问题。
【问题讨论】:
标签: bash shell unicode file scripting