¿Cómo puedo listar archivos con su ruta absoluta en linux? [cerrado]
Quiero generar listados de archivos recursivos con rutas completas
/home/ken/foo/bar
Pero por lo que puedo ver, tanto ls
como {[3] } solo dan listas de rutas relativas
./foo/bar (from the folder ken)
Parece un requisito obvio, pero no puedo ver nada en las páginas de manual find
o ls
.
10 answers
Si le da a find
una ruta absoluta para comenzar, imprimirá rutas absolutas. Por ejemplo, para encontrar todo .archivos htaccess en el directorio actual:
find `pwd` -name .htaccess
find
simplemente antepone la ruta que se le dio a una ruta relativa al archivo desde esa ruta.
Greg Hewgill también sugirió usar pwd -P
si desea resolver enlaces simbólicos en su directorio actual.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:48
readlink -f filename
Da el camino absoluto completo. pero si el archivo es un enlace simbólico, obtendrá el nombre final resuelto.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-02 04:45:05
Use esto para dirs:
ls -d -1 $PWD/**
Esto para los archivos:
ls -d -1 $PWD/*.*
Esto para todo:
ls -d -1 $PWD/**/*
Tomado de aquí http://www.zsh.org/mla/users/2002/msg00033.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-26 07:07:42
Puede usar
find $PWD
En bash
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-29 09:27:50
ls -d $PWD/*
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-15 13:15:50
Si le da al comando find una ruta absoluta, escupirá los resultados con una ruta absoluta. Por lo tanto, desde el directorio Ken si usted fuera a escribir:
Find / home / ken / foo / - name bar-print
(en lugar de la ruta relativa buscar . - barra de nombre-print)
Usted debe obtener:
/ home/ken/foo / bar
Por lo tanto, si desea un ls-l y tiene que devolver la ruta absoluta, solo puede decirle al comando find que ejecute un ls-l en lo que encuentre.
Buscar /home / ken / foo-name bar-exec ls-l {}; \
NOTA: Hay un espacio entre {} y ;
Obtendrás algo como esto:
- rw-r ken r ken 1 ken admin 181 Jan 27 15: 49/home/ken/foo / bar
Si no está seguro de dónde está el archivo, siempre puede cambiar la ubicación de búsqueda. Siempre y cuando la ruta de búsqueda comience con "/", obtendrá una ruta absoluta a cambio. Si está buscando una ubicación (como /) donde va a obtener una gran cantidad de errores de permiso denegado, entonces recomendaría redirigir el error estándar para que pueda ver los resultados de búsqueda:
Find / - name bar-exec ls-l {}; \ 2>/dev / null
(2> es la sintaxis para shells borne y bash, pero no funcionará con c shell. Puede funcionar en otras conchas también, pero solo sé con certeza que funciona en bourne y bash).
Espero que esto ayude!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-29 13:43:55
El $PWD
es una buena opción por Mateo arriba. Si desea que find solo imprima archivos, también puede agregar la opción-type f para buscar solo archivos normales. Otras opciones son" d " solo para directorios, etc. Así que en su caso sería (si quiero buscar solo archivos con .c ext):
find $PWD -type f -name "*.c"
O si desea todos los archivos:
find $PWD -type f
Nota: No puede crear un alias para el comando anterior, porque bas PWD se completa automáticamente en su directorio personal cuando bash establece el alias.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-23 09:42:44
lspwd() { for i in $@; do ls -d -1 $PWD/$i; done }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-31 00:08:33
ls -1 | awk -vpath=$PWD/ '{print path$1}'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-23 20:37:26
find / -print
hará esto
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-29 09:26:47