드라이 모드에서 rsync를 실행 한 다음 rsync 출력에 나열된 파일의 크기를 합산하여 두 폴더를 동기화 할 때 새로 복사 할 파일의 크기를 결정하려고합니다.
현재 부모 폴더로 파일 앞에 접두사를 붙이고 있습니다. sed를 사용하여 줄을 접두사로 쓰는 방법과 sed를 사용하여 탈출하는 방법을 찾았지만 두 가지를 결합하는 데 문제가 있습니다.
이것이 내가 얻은 거리입니다.
source="/my/source/folder/"
target="/my/target/folder/"
escaped=`echo "$source" | sed -e 's/[\/&]/\\//g'`
du `rsync -ahnv $source $target | tail -n +2 | head -n -3 | sed "s/^/$escaped/"` | awk '{i+=$1} END {print i}'
이것은 bash -x myscript.sh에서 얻은 결과입니다.
+ source=/my/source/folder/
+ target=/my/target/folder
++ echo /my/source/folder/
++ sed -e 's/[\/&]/\//g'
+ escaped=/my/source/folder/
+ awk '{i+=$1} END {print i}'
++ rsync -ahnv /my/source/folder/ /my/target/folder/
++ sed 's/^//my/source/folder//'
++ head -n -3
++ tail -n +2
sed: -e expression #1, char 8: unknown option to `s'
+ du
80268
제대로 탈출하는 방법에 대한 아이디어는 높이 평가할 것입니다.