由于 mynfs
是一种win
服务器,它不能包含:
. 我想将多个文件从源服务器复制到nfs
另一台服务器上的目录并同时重命名它们。
脚本如下所示:
#!/bin/bash
in_files="node1:~/experiment/wrfout_d01_2012-12-01*"
###########################################################
# the files look like wrfout_d01_2012-12-01_00:00:00
# wrfout_d01_2012-12-01_06:00:00
# wrfout_d01_2012-12-01_12:00:00
# wrfout_d01_2012-12-01_18:00:00
###################################
for fn in $in_files;do
echo $fn
newfn=$(basename "$fn")
echo 'apply basename :'
echo $newfn
scp -r "$fn" "./${newfn//:/_}"
echo 'next:'
done
运行此脚本后,它报告
node1:~/experiment/wrfout_d01_2012-12-01*
apply basename :
wrfout_d01_2012-12-01_12_00_00
./wrfout_d01_2012-12-01*: File name too long
./wrfout_d01_2012-12-01*: File name too long
./wrfout_d01_2012-12-01*: File name too long
./wrfout_d01_2012-12-01*: File name too long
next:
但似乎如果我只将脚本应用于一个文件,就可以了,(即更改in_files
为某个文件),例如:
node1:~/experiment/wrfout_d01_2012-12-01_00:00:00
apply basename :
wrfout_d01_2012-12-01_00:00:00
wrfout_d01_2012-12-01_00:00:00 100% 71MB 70.5MB/s 00:00
next:
1.那么我应该怎么做才能让它适用于多个文件?
2.顺便说一句,rsync
这部分似乎也可以做,哪个更快或首选。