my는 서버 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:
그러나 스크립트를 하나의 파일에만 적용하면 작동하는 것 같습니다(예: 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
이 부분도 이루어진 것 같은데, 어느 쪽이 더 빠르거나 더 좋은지.