¿Cómo obtengo la ruta absoluta al usar el comando find unix?


11

Cómo obtener la ruta absoluta utilizando el comando find.
en realidad estoy ejecutando el siguiente script:

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

pero aquí la variable que $amuestra la ruta comienza desde ./Downloads/filenamepero quiero la ruta absoluta desde /.

Respuestas:


16

Use find con una ruta absoluta.

find /path/ -size +20M

Imprimirá todo el camino.
Si no conoce el directorio de trabajo, utilice la sustitución de comandos de pwdesta manera:

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

Para obtener su directorio de trabajo

De todos modos, parece que Bash man ahora recomienda usar $()más, ``por lo que debe usar la segunda forma. También puede referirse directamente a la $PWDvariable que contiene el directorio de trabajo de su script y probablemente sería más rápido si tiene que usarlo en un bucle.

find "$PWD" -size +20M

Pero no tengo camino, solo tengo. como directorio actual entonces?
— Shivam Sharma

2
No comience con ., use $(pwd)en su lugar, eso le dará un camino completo.
— bsd

8

Puede usar el pwdcomando o imprimir el archivo realpath:

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

Ambos comandos reales le dan la ruta absoluta a los archivos.


Pero el segundo está dando find: `realpath ': No
— Shivam Sharma

Tararear. Tal vez no lo tenga instalado, aunque lo proporciona el coreutilspaquete. Intenta localizarlo con which realpath.
— Spack

No está localizando nada ..
— Shivam Sharma

¿Qué sistema estás usando?
— Spack

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

0

Para enumerar todos los archivos PNG y JPEG que tienen 7 días de antigüedad con ruta absoluta.

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

Aquí $PWDse agregará a cada archivo que coincida.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.