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
이 부분도 수행할 수 있는 것 같습니다. 어느 쪽이 더 빠르거나 선호되는지요.