Wie erhalte ich den absoluten Pfad mit dem Befehl find unix?


11

So ermitteln Sie den absoluten Pfad mithilfe des Befehls find.
Eigentlich führe ich das folgende Skript aus: -

find . -size +20M | while read a
do
     i=$(echo $a | sed 's:/: :g')
     echo $a;
     j=($i)
     fileName=${j[${#j[@]}-1]}
     userName=${j[${#j[@]}-3]}
done

aber hier Variable $azeigt Pfad ab, ./Downloads/filenameaber ich möchte absoluten Pfad von /.

Antworten:


16

Verwenden Sie find mit einem absoluten Pfad.

find /path/ -size +20M

Es wird der gesamte Pfad gedruckt.
Wenn Sie das Arbeitsverzeichnis nicht kennen, verwenden Sie die Befehlsersetzung für pwdFolgendes:

find "`pwd`" -size +20M 
   #or like this:
find "$(pwd)" -size +20M

Um Ihr Arbeitsverzeichnis zu erhalten

Auf jeden Fall scheint es , dass Bash Mann jetzt zu verwenden , raten $()über , ``so dass Sie das zweite Formular verwendet werden soll. Sie können wahrscheinlich auch direkt auf die $PWDVariable verweisen, die das Arbeitsverzeichnis Ihres Skripts enthält, und es wäre wahrscheinlich schneller, wenn Sie es in einer Schleife verwenden müssten.

find "$PWD" -size +20M

Aber ich habe keinen Weg, ich habe nur. als aktuelles Verzeichnis dann?
— Shivam Sharma

2
Beginnen Sie nicht mit ., $(pwd)sondern verwenden Sie stattdessen, um einen vollständigen Pfad zu erhalten.
— BSD

8

Sie können den pwdBefehl verwenden oder die Datei ausdrucken realpath:

$ find "$(pwd)" -size +20M
$ find . -size +20M -exec realpath {} +

Beide Befehle geben Ihnen den absoluten Pfad zu den Dateien.


Aber der zweite gibt find: `realpath ': Keine solche Datei oder kein solches Verzeichnis
— Shivam Sharma

Summen. Möglicherweise haben Sie es nicht installiert, obwohl es im coreutilsPaket enthalten ist. Versuchen Sie es mit zu finden which realpath.
— Spack

Es findet nichts ..
— Shivam Sharma

Welches System verwenden Sie?
— Spack

Linux BANE 3.7-trunk-amd64 # 1 SMP Debian 3.7.2-0 + kali8 x86_64 GNU / Linux
— Shivam Sharma

0

Zum Auflisten aller 7 Tage alten PNG- und JPEG-Dateien mit absolutem Pfad.

$ find $PWD/ -mtime -7 -print -exec grep -e ".png\|.jpg" {} \;

Hier $PWDwird zu jeder übereinstimmenden Datei hinzugefügt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.