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.