Wie finde ich mit locate nach einem übergeordneten Ordner einer Datei?

330
phong

Zum Beispiel habe ich diese Datei in diesem Ordner

folder_x/folder_y/file1.txt 

Ich möchte so etwas machen:

locate -xxxx file1.txt

und hol dir das

/folder_x/folder_y/ 
1

1 Antwort auf die Frage

0
Hastur

Sie können den Verzeichnisnamen verwenden, der den Namen des übergeordneten Ordners aus einem vollständigen Dateinamen extrahiert.

Wenn es sich beispielsweise um eine einzelne Datei handelt,

 dirname $(locate myuniquefile) 

Bei mehreren Antworten können Sie jeden einzelnen Eintrag bearbeiten.
Beispielsweise können Sie mit awk Ihren Befehl erstellen und die Ausgabe an eine Bash-Shell weiterleiten.

locate \.mp3 | awk '' | /bin/bash 

Mit moderner Bash können Sie auch andere Konstrukte als hier eine Zeichenkette verwenden :

/bin/bash <<< $(locate \.mp3 | awk '' ) 

Hinweis: Aus Sicherheitsgründen ( Trojanische Pferde ) empfiehlt es sich, den vollständigen Pfad zum Aufrufen der Befehle zu verwenden: also besser /bin/bashals einfach bash.