• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Unix oder Automator: Dateien mit bestimmten Zeichenkombinationen finden ...

  • Ersteller willfried
  • Erstellt am

willfried

Gast
Hallo Forum,

Ein banales Problem: Ich habe auf meinem System in verschiedensten Ordnern Dateien der Form

abc.xyz.VERS1.123 bzw.
abc.xyz.VERS2.123.

Erzeugt wurden sie von einem Sync-Programm. Diese Dateien sollen gelistet bzw. gelöscht werden. Weder Automator noch unix Kommandos im Terminalmodus konnten mir helfen. Als Pattern haben ich "*.VERS1.*" benutzt, aber das funktioniert nicht. Die man-page von find war auch nicht hilfreich: möglicherweise interpretiere ich die Syntax falsch...

Was muss ich tun?
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Versuch mal ein
Code:
find / -name "*.VERS1.*"
Das sollte alle derart benannten Dateien unterhalb von / finden. Oder das Wurzelverzeichnis entsprechend umbenennen. Wenn es bei Dir die richtigen Dateien auswirft, kannst Du die Ausgabe von find weiterverarbeiten (mit der -exec Option).
 

willfried

Gast
find funktioniert. Kann ich das Ergebnis zum Löschen nicht einfach zu rm durchreichen, etwa so:
find . -name "*.VERS?.*" | rm
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Ja, das ginge. Probehalber würde ich es vielleicht zunächst mal so machen:
Code:
find . -name "*.VERS?.*" -ok rm {} \;
Dann würdest Du vor dem Löschen jeder Datei nochmal um Bestätigung gebeten. Die -ok Option schützt Dich vor eventuellen Fehleingaben beim Filter. Falls alles richtig erscheint, kannst Du immer noch mit Ctrl-C abbrechen und "radikal" über die Pipe rm rattern lassen (genauso wie Du schon gepostet hast). ;)
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
willfried schrieb:
find funktioniert. Kann ich das Ergebnis zum Löschen nicht einfach zu rm durchreichen, etwa so:
find . -name "*.VERS?.*" | rm
find hat einen eigenen Löschbefehl, der ist bei vielen Dateien viel flinker.

find -x . -iname '*.VERS?.*' -delete

(Das -x beschränkt die Suche auf das eine Volume, das -iname ignoriert Gross/Kleinschreibung im Suchmuster.)
 

willfried

Gast
Super + Danke! Klappt bestens. Geht doch nichts über Unix ;)
 

48259

Schöner von Nordhausen
Registriert
01.02.06
Beiträge
326
Vers1? Bibelverse oder wie? (sorry, musste sein...)