gpt4 book ai didi

bash - 使用 shell 脚本时,如何复制名称中包含空格和 UNICODE 的文件?

转载 作者:行者123 更新时间:2023-11-29 09:01:32 26 4
gpt4 key购买 nike

我有一个文件列表,我试图在 bash shell 脚本中复制和移动(使用 cp 和 mv)。我遇到的问题是,我无法获得任何命令来识别大量文件,这似乎是因为文件名包含空格和/或 unicode 字符。我找不到任何开关来解码/重新编码这些字符。相反,例如,如果我复制“file name.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 字符的文件,我才会遇到问题。

最佳答案

空格问题表示引用不充分。以下是错误的:

someprogram $file

正确的版本如下:

someprogram "$file"

关于bash - 使用 shell 脚本时,如何复制名称中包含空格和 UNICODE 的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2550791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com