[gelöst] find und tar: -exec, xargs?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
detix
Beiträge: 1702
Registriert: 07.02.2007 18:51:28
Wohnort: MK

[gelöst] find und tar: -exec, xargs?

Beitrag von detix » 16.09.2016 14:27:24

Speziell geht es mir um ein Backup des Debiansylpheed Ordners (stretch),
sylpheed legt je 5 Sicherungen einzelner Dateien an (.bak, .bak.1, ...4), die ich im Backup nicht unbedingt brauche und einfach nicht wegbekomme!
Die Dateiliste wird mit find richtig dargestellt (Auszug):

Code: Alles auswählen

find . ! -regex '.*\(bak$\|bak\.[0-9]$\)'
./folderlist.xml
./accountrc
./sylpheedrc
diese und andere Dateien gibt es halt noch weitere 5 mal als Kopie mit og Endungen, scheint nicht konfigurierbar zu sein.

Ein paar und viele weitere Versuche:

Code: Alles auswählen

find . ! -regex '.*\(bak$\|bak\.[0-9]$\)' | xargs tar -czvf /tmp/3/999.tar.gz
find . ! -regex '.*\(bak$\|bak\.[0-9]$\)' | tar -czvf /tmp/3/999.tar.gz -T -
find . ! -regex '.*\(bak$\|bak\.[0-9]$\)' -exec tar -czvf /tmp/3/999.tar.gz '{}' \+
beinhalten alle noch die *.bak* Dateien, wie bekomme ich die weg?
Zuletzt geändert von detix am 16.09.2016 16:22:59, insgesamt 1-mal geändert.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: find und tar: -exec, xargs?

Beitrag von wanne » 16.09.2016 15:34:49

Code: Alles auswählen

find . -regextype posix-extended ! -regex '.*bak(\.[0-9]*)?$'
rot: Moderator wanne spricht, default: User wanne spricht.

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: find und tar: -exec, xargs?

Beitrag von wanne » 16.09.2016 15:35:44

Oder mit klassischen Regex:

Code: Alles auswählen

find . ! -regex '.*bak\(\.[0-9]*\)?$'
rot: Moderator wanne spricht, default: User wanne spricht.

tobo
Beiträge: 1990
Registriert: 10.12.2008 10:51:41

Re: find und tar: -exec, xargs?

Beitrag von tobo » 16.09.2016 16:03:21

In der Liste wird wohl das Verzeichnis drinstehen und das als Argument für tar lässt dann die Dateien folgen. Setz mal ein -type f vor die negative regex im find.

Benutzeravatar
detix
Beiträge: 1702
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: find und tar: -exec, xargs?

Beitrag von detix » 16.09.2016 16:20:29

Der find -Befehl selbst funktioniert ja, nur wie bringe ich das tar bei?

Ja ist das denn die Possibility, tobo du bist mein Held!
Damit funktionieren alle(!) 3 og Befehle, also:

Code: Alles auswählen

find . -type f ! -regex...
find . -type f ! -regex '.*bak\(\.[0-9]*\)?$' | xargs tar -czvf /tmp/3/999.tar.gz
letzteres verkürzt die RegEx Schreibweise, das wird wohl mein Favorit werden.
Vielen Dank euch beiden!
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Antworten