nfs
はサーバー タイプであるため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:
ただし、スクリプトを 1 つのファイルのみに適用する場合は問題ないようです (つまり、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
この部分もできるようですが、どちらが速いか、または好ましいでしょうか。