staging.inyokaproject.org

ls, locate, find

Status: Ungelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

DonMM

Anmeldungsdatum:
30. Juli 2017

Beiträge: 249

Liebe UU,
ich möchte nach Teilen des Dateinamens (Gross & Kleinschreibung) in einem Ordner suchen, kopieren und die Dateien an einem anderem Ort einfügen.
Bei den Beschreibungen bei ls, locate und find kann ich dazu keine Kriterien finden

find -name ABC
find -name "ABC"
find -name *ABC*
find -name ?ABC? 
find -name ABC.jpg

liefert alles kein Ergebnis

mit

locate ABC 

bekomme ich zwar Ergebnisse, kann diese aber nicht weiter einschränken, geschweige kopieren und woanders einfügen

mit ls habe ich es zumindest mit

ls > 1.txt

so weit gebracht, dann im Editor zu suchen.
ist eine langwierige Sache danach im Textfile Zeilen löschen, und übrigen Zeilen dann als Datei suchen und kopieren

gibt es für so etwas eine elegante Lösung?

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Find wäre da eigentlich schon das richtige Tool für. Per Standard durchsucht es das Verzeichnis rekursiv. Wenn Groß- und Kleinschreibung nicht beachtet werden soll, musst Du die Option -iname verwenden. Wenn Du dann -exec verwendest, kannst Du die gefundenen Dateien auch gleich verschieben.

Also so werden Dir alle Dateien/Verzeichnisse im aktuellen Verzeichnis und Unterverzeichnissen davon angezeigt, die abc im Dateinamen haben:

find -iname "*abc*"

locate durchsucht einfach seine Datenbank. Das kann man nicht weiter auf bestimmte Verzeichnisse einschränken, sondern das zeigt immer die passenden Dateien vom gesamten Rechner an.

ls zeigt einfach Dateien im aktuellen Verzeichnis an, unterscheidet aber meines Wissens immer nach Groß-/Kleinschreibung.

Lies Dir am Besten auf mal Bash (Abschnitt „Wildcards“) durch. Da wird dann die Bedeutung der Wildcards etwas klarer...

DonMM

(Themenstarter)

Anmeldungsdatum:
30. Juli 2017

Beiträge: 249

danke Doc_Symbiosis ... ja

find -iname

liefert Ergebnisse, lustigerweise aber weniger als ich mit catfish im gleichen ordner finde.
woran kann las liegen und falls die Ergebnisse stimmen wie kann ich alle gefundenen Dateien kopieren und woanders einfügen? oder ist es da ratsamer mit (wenn vorhanden) etwas mit einer grafischen Oberfläche zu arbeiten?

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

liefert Ergebnisse, lustigerweise aber weniger als ich mit catfish im gleichen ordner finde.

Hm, ich kenne catfish nicht. Da wäre die Frage, wer denn die "richtigen" Ergebnisse anzeigt. Wenn bei find der reguläre Ausdruck hinter dem iname passt, dann ist das Ergebnis auf jeden Fall richtig. Was zegt catfish denn zusätzlich für Dateien an, die find nicht ausgibt?

oder ist es da ratsamer mit (wenn vorhanden) etwas mit einer grafischen Oberfläche zu arbeiten?

Naja, ich verwende eher selten GUI-Programme. Du musst eben wissen, wie die Programme zu bedienen sind. Meistens sind die Kommendozeilenprogramme erheblich mächtiger, weil so ein GUI-Programm häufig auch nur ein Frontend ist und darunter im Endeffekt auch die gleichen Kommandozeilenprogramme verwendet, aber eben nur ein paar Optionen davon zur Verfügung stellt.

Also mit find könntest Du das z.B. so machen:

find -iname "*ABC*" -exec  mv "{}" /tmp \;

Das verschiebt alle Dateien (und Verzeichnisse) aus dem aktuellen Verzeichnis und allen Verzeichnissen darunter mit ABC im Namen nach /tmp. Wenn Du das erstmal testen möchtest, kannst Du einfach noch ein echo dort mit einbauen. Das macht dann erstmal nichts, sondern, macht nur eine Ausgabe, was es tun würde:

find -iname "*ABC*" -exec  echo mv "{}" /tmp \;

Das {} steht für den Namen der jeweiligen gefundenen Datei.

DonMM

(Themenstarter)

Anmeldungsdatum:
30. Juli 2017

Beiträge: 249

danke Doc_Symbiosis und sry für meine "Verspätung"

Was zegt catfish denn zusätzlich für Dateien an, die find nicht ausgibt?

dateien die vor dem suchbegriff ein % haben, für unser beispiel %ABC

Meistens sind die Kommendozeilenprogramme erheblich mächtiger

ich hab mich noch imme rnicht so richtig dran gewöhnt ☺ und wie es aussieht komme ich mit deiner Hilfe gut weiter wenn ich statt "mv" kopieren möchte dann werde ich stattdessen "cp" verwenden
gibts es einen anhaltspunkt für dateien, die ein % enthalten ?

Antworten |