Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Wie Dateien nach Typ (nicht Namen) Suchen und Kopieren?

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.09.2006
    Beiträge
    120

    Question Wie Dateien nach Typ (nicht Namen) Suchen und Kopieren?

    Ich möchte rekursiv nach Dateityp suchen und die Treffer in ein Ziel-Verzeichnis kopieren.
    Mein erster Ansatz ist:

    Code:
    find . -type f -exec file {} \; | grep -i image | cut -d ':' -f1 | sed 's/.*/"&"/' | xargs cp -a -t /tmp/foo/
    Das funktioniert auch mit Dateinamen die Leerzeichen enthalten, aber:
    a) gibt es bei gleichem Dateinamen eine Kollision und nur der jeweils erste Treffer wird kopiert
    b) werden auch alle Dateien, die im Namen "image" enthalten mit kopiert, weil Daten und Metadaten gemischt sind

    Wie bekomme ich diese Probleme weg?

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.05.2013
    Beiträge
    1
    Hallo Linus,

    zu b)

    Code:
    find . -type f -exec file {} \; | grep ":.*.image data" > Imagelist.txt
    schreibt die Liste aller Images in die Datei Imagelist.txt

    zu a)
    Das würde ich dann doch eher in Python lösen.

    gruss tgn

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.09.2006
    Beiträge
    120
    Zitat Zitat von tgn Beitrag anzeigen
    Hallo Linus,

    zu b)

    Code:
    find . -type f -exec file {} \; | grep ":.*.image data" > Imagelist.txt
    schreibt die Liste aller Images in die Datei Imagelist.txt
    Ja, danke, das sieht besser aus als mein Ansatz, wenn auch nicht ganz perfekt, aber es dürfte nur wenige Dateien geben, deren Name dieses Suchmuster erfüllt.
    Und in eine Datei schreiben ist keine gute Idee; ich hatte schon Dateien mit mehreren Newlines im Namen und weitere Probleme mit anderen Sonderzeichen.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •