So kopieren Sie nur symbolische links durch rsync
Wie kann ich kopieren von symbolischen links (und nicht die Datei, auf die es verweist) oder andere Dateien mit rsync?
Versuchte ich
rsync -uvrl input_dir output_dir
aber ich muss exklusiv kopieren Sie die symbolischen links nur???
irgendeinen trick mit include exclude-Optionen?
InformationsquelleAutor Newbiee | 2012-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pro diese Frage+Antwort, können Sie dieses script als ein Rohr. Rohre sind ein integraler Bestandteil der shell-Programmierung und shell-scripting.
Was ist denn hier Los?
Den
find
- Befehl wird in /Pfad/zu/Dateien und Schritte rekursiv durch alles, was "unter" diesen Punkt. Die Optionenfind
sind Bedingungen, die das begrenzen, was wird der Ausgang durch die-print
option. In diesem Fall, nur Dinge von-type l
(symbolischen link nachman find
) gedruckt wird, finden Sie die "standard-Ausgabe".Diese Dateien werden die "standard-Eingabe" der
rsync
- Befehl--file-from
option.Give it a shot. Ich habe nicht wirklich getestet, aber es scheint mir, dass es funktionieren sollte.
Dies wird nicht kopieren Sie die symlinks als symlinks, obwohl.
Gut,
-a
übersetzt-rlptgoD
, und-l
dokumentiert ist, "wenn symlinks auftreten, erstellen Sie den symbolischen Link auf das Ziel." Welche Ergebnisse haben Sie stoßen?Oh! Ich vermisste, dass -a-l!
InformationsquelleAutor ghoti
Können Sie generieren eine Liste von Dateien ohne links mit
find input_dir -not -type l
, rsync hat eine option--exclude-from=exlude_file.txt
können Sie machen es in zwei Schritten :
find input_dir -not -type l > /tmp/rsync-exclude.txt
rsync -uvrl --exclude-from=/tmp/rsync-exclude.txt input_dir output_dir
einer Zeile bash :
rsync -urvl --exclude-from=<(find input_dir -not -type l | sed 's/^..//') input_dir output_dir
InformationsquelleAutor moul
Können Sie es leichter mögen:
BEARBEITEN:
Wenn Sie möchten, kopieren von symbolischen Verknüpfungen im aktuellen Verzeichnis nur, ohne dass es rekursiv. Sie tun kann:
InformationsquelleAutor Rehmat
Ich bevorzuge diese:
Ist der Grund einfach. In der vorherigen vorgeschlagenen version, ich hatte mein Passwort eingeben mit jeder Datei. Auf diese Weise kann ich senden alle symlinks auf einmal, mit nur einem Kennwort eingegeben werden.
InformationsquelleAutor xerostomus