Wie lautet die Syntax der Spiegel -x (ausschließen) -Option von lftp?

7

Ich möchte ein Verzeichnis mit spiegeln, lftpaber bestimmte Unterverzeichnisse ausschließen.

Ich habe es versucht

mirror -R -e -x ^\.svn$ /documents/ /test

und

mirror -R -e -x /^\.svn$/ /documents/ /test

aber keiner von ihnen schloss die .svn- Verzeichnisse aus.

AndreKR
quelle

Antworten:

8

mirror -R -e -x ^\.svn$ /documents/ /test ist in Ordnung.

Der Trick ist, dass .svn ein Verzeichnis ist, dem nur ein Muster entspricht, das mit einem Schrägstrich endet:

mirror -R -e -x ^\.svn/$ /documents/ /test

AndreKR
quelle
2

Aus meinen Experimenten geht hervor, dass die Einschluss- und Ausschlussmuster mit dem gesamten Pfad ohne anfängliches / aber mit einem nachgestellten / für ein Verzeichnis übereinstimmen.

Wenn Sie also versuchen, einen Verzeichnisnamen wie .svn zu finden, der auf einer beliebigen Ebene im Baum vorkommen kann, benötigen Sie diese RE:

(^\|/).svn/

Die ^ Alternative entspricht .svn auf der obersten Ebene und die / Alternative entspricht jeder Ebene darunter.

Die | Der Charakter ist für lftp von Bedeutung und muss geschwappt werden.

Denis Howe
quelle
1

Ich benutze

--exclude /\..+/$

um alle Ordner auszuschließen, die mit einem Punkt beginnen.

Jiří Herník
quelle