Comment obtenir un chemin absolu à l'aide de la commande find unix

11

Comment obtenir un chemin absolu en utilisant la commande find.
en fait je lance le script suivant: -

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

mais ici variable $amontrant le chemin à partir de ./Downloads/filenamemais je veux un chemin absolu à partir de /.

Shivam Sharma
la source

Réponses:

16

Utilisez find avec un chemin absolu.

find /path/ -size +20M

Il imprimera tout le chemin.
Si vous ne connaissez pas le répertoire de travail, utilisez la substitution de commandes pwdcomme ceci:

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

Pour obtenir votre répertoire de travail

Quoi qu'il en soit, il semble que Bash Man conseille maintenant d'utiliser $()Over ``, vous devriez donc utiliser le deuxième formulaire. Vous pouvez également probablement vous référer directement à la $PWDvariable qui contient le répertoire de travail de votre script et ce serait probablement plus rapide si vous devez l'utiliser en boucle.

find "$PWD" -size +20M
Kiwy
la source
Mais je n'ai pas de chemin, je l'ai seulement. comme répertoire courant alors?
Shivam Sharma
2
Ne commencez pas avec ., utilisez $(pwd)plutôt, cela vous donnera un chemin complet.
bsd
8

Vous pouvez utiliser la pwdcommande ou imprimer le fichier realpath:

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

Les deux commandes vous donnent le chemin absolu vers les fichiers.

Spack
la source
Mais le deuxième donne find: `realpath ': Aucun fichier ou répertoire de ce type
Shivam Sharma
Fredonner. Vous ne l'avez peut-être pas installé bien qu'il soit fourni par le coreutilspaquet. Essayez de le localiser avec which realpath.
Spack
Il ne localise rien ..
Shivam Sharma
Quel système utilisez-vous?
Spack
Linux BANE 3.7-trunk-amd64 # 1 SMP Debian 3.7.2-0 + kali8 x86_64 GNU / Linux
Shivam Sharma
0

Pour répertorier tous les fichiers PNG et JPEG qui ont 7 jours avec un chemin absolu.

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

Ici $PWDsera ajouté à chaque fichier correspondant.

aty
la source