Ich versuche, die Größe der Dateien zu bestimmen, die beim Synchronisieren von zwei Ordnern neu kopiert werden, indem ich rsync im trockenen Modus ausführe und dann die Größe der in der Ausgabe von rsync aufgelisteten Dateien aufsummiere.
Derzeit stecke ich fest, ob ich den Dateien den übergeordneten Ordner voranstelle. Ich fand heraus, wie man mit sed Zeilen voranstellt und mit sed entkommt, aber ich habe Probleme, diese beiden zu kombinieren.
So weit bin ich gekommen:
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}'
Dies ist die Ausgabe, die ich von bash -x myscript.sh bekomme
+ 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
Irgendwelche Ideen, wie man richtig entkommt, wären hoch geschätzt.