Bash rsync脚本错误地扩展变量

Bash rsync脚本错误地扩展变量,bash,scripting,rsync,file-processing,Bash,Scripting,Rsync,File Processing,我有一个脚本,它从文件中获取唯一的位置号。例如,它们的格式如下7325-05、5269-09和7479-14。前四个数字是文件夹的名称,第二个数字是每个文件夹中唯一的文件名的前两个字符 因此,我编写了这个脚本,使用locate和find获取文件夹的完整路径,然后使用通配符使用rsync下载特定文件。以下是我现在拥有的脚本: #!/bin/bash #IFS=' #' oIFS=$IFS IFS=$'\n' while read line; do name=$line; fol

我有一个脚本,它从文件中获取唯一的位置号。例如,它们的格式如下7325-05、5269-09和7479-14。前四个数字是文件夹的名称,第二个数字是每个文件夹中唯一的文件名的前两个字符

因此,我编写了这个脚本,使用locate和find获取文件夹的完整路径,然后使用通配符使用rsync下载特定文件。以下是我现在拥有的脚本:

#!/bin/bash

#IFS='
#'
oIFS=$IFS
IFS=$'\n'

while read line;
do
    name=$line;
    folder=${line:0:4}
    track=${line: -2}
    folderlocation="$(locate -r '/'$folder'$')"
    filelocation="$(find "$folderlocation" -type f -name "$track*")"
    rsync -vazhn --progress "$filelocation" /cygdrive/c/
#    mkdir /cygdrive/c/test/"$folder"
#    cp -rvi "$filelocation" /cygdrive/c/test/"$folder"

    echo "";
done < $1

正如您所看到的,我的主文件夹(我发出命令的地方)突然包含在脚本中,这让我相信一个变量或通配符正在本地shell中展开,但使用rsync似乎没有多少转义字符可以实现我想要的功能。

您是否尝试过将文件路径放在内部引号
“$filelocation”中
@NarūnasK:是的,我也尝试过,结果几乎相同:
发送增量文件列表rsync:change_dir”/home/emil/'\\sandrew nas/SMMUSIC/mmimmusic/7001-8000/7201-7300/7252/未知相册(29-12-2012 09-52-02)“失败:没有这样的文件或目录(2)
关于
查找“$folderlocation”--type f-name”$track*”怎么办-print0-exec rsync-0-vazhn-progress{}/cygdrive/c/\@NarūnasK:几乎是一样的事情<代码>\\sandrew nas/SMMUSIC/MMIMMusic/1001-2000/1201-1300/1283/Classic/02大调单簧管协奏曲-慢动作-行板k622-亚历山大·格里戈罗夫,单簧管。维也纳室内乐团.wav发送增量文件列表rsync:change_dir“/home/emil/\\sandrew nas/SMMUSIC/mmimmusic/1001-2000/1201-1300/1283/classic”失败:没有这样的文件或目录(2)
您确定此路径
/home/emil/\\sandrew nas/SMMUSIC/mmimmusic/1001-2000/1201-1300/1283/classic
在您的系统上有效吗?我关心的是
\\sandrew….
位(注意文件名中有两个反斜杠)。
./filelocator classic-locations.txt
sending incremental file list
rsync: change_dir "/home/emil//\\sandrew-nas/SMMUSIC/MMIMUSIC/7001-8000/7201-7300/7252/Unknown Album (29-12-2012 09-52-02)" failed: No such file or directory (2)

sent 20 bytes  received 12 bytes  64.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]

sending incremental file list
rsync: change_dir "/home/emil//\\sandrew-nas/SMMUSIC/MMIMUSIC/7001-8000/7201-7300/7252/Unknown Album (29-12-2012 09-52-02)" failed: No such file or directory (2)

sent 20 bytes  received 12 bytes  64.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]