Angenommen, ich möchte einen Ordner mit Unison synchronisieren, aber nur JPG-Dateien.
Wie konnte ich das machen?
Antwort1
Sie müssen Ihrem Profil die folgenden Zeilen hinzufügen:
ignore = Name ?*
ignorenot = Name *.jpg
Antwort2
Acht Jahre später ... ignoriert das Akzeptierte Dateien ohne Punkt oder Dotfiles nicht richtig.
Und jedes Muster (z. B. Regex ^((?!.jpg).)*$
), das diesen entspricht, verschlingt auch Verzeichnisse, die möglicherweise .jpg als untergeordnetes Element haben. (Siehe „Unison beginnt mit der Erkennung von Updates...“ unterPfade ignorierenim Handbuch.)
Die einzige Möglichkeit, die ich gefunden habe, besteht darin, die Synchronisierung mit den zusätzlichen Dateien fortzusetzen und dann
find "$DEST" --type f ! -iname "*.jpg" -delete
find "$DEST" --type d -empty -delete
um sie zu töten, und dann die leeren Verzeichnisse zu bereinigen. (In meinem Fall habe ich tatsächlich
find "$DEST" --type d -empty ! -name ".stfolder" -delete
um ein SyncThing-Markierungsverzeichnis beizubehalten – fragen Sie nicht.)
Eine potenziell schlimme Folge hiervon ist das kurzfristige Kopieren großer Mengen zusätzlicher Daten – in meinem Fall werden etwa 3,5 GB von einer Partition auf eine andere verschoben und dann sofort wieder gelöscht.