varios - ¿Cómo puedo listar archivos con su ruta absoluta en linux?
mover varios archivos en linux (10)
El $PWD
es una buena opción por Matthew arriba. Si desea buscar solo imprimir archivos, también puede agregar la opción -type f para buscar solo archivos normales. Otras opciones son "d" solo para directorios, etc. Entonces, en su caso, sería (si deseo buscar solo archivos con .c ext):
find $PWD -type f -name "*.c"
O si quieres todos los archivos:
find $PWD -type f
Nota: no puede crear un alias para el comando anterior, porque $ PWD se completa automáticamente en su directorio de inicio cuando bash establece el alias.
Quiero generar listados de archivos recursivos con rutas completas
/home/ken/foo/bar
pero en la medida en que puedo ver tanto ls
y find
solo dar listados de rutas relativas
./foo/bar (from the folder ken)
Parece un requisito obvio, pero no puedo ver nada en las páginas de manual de find
o ls
.
Puedes usar
find $PWD
en bash
Si da comienzo a find
una ruta absoluta, imprimirá rutas absolutas. Por ejemplo, para encontrar todos los archivos .htaccess en el directorio actual:
find `pwd` -name .htaccess
find
simplemente anula 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 los enlaces simbólicos en su directorio actual.
Si le asigna al comando de búsqueda una ruta absoluta, escupirá los resultados con una ruta absoluta. Entonces, desde el directorio de Ken si tuvieras que escribir:
encontrar / home / ken / foo / -name bar -print
(en lugar de la ruta de acceso relativa. -name bar -print)
Usted debe obtener:
/ home / ken / foo / bar
Por lo tanto, si desea un ls -l y le devuelve la ruta absoluta, simplemente puede indicar al comando de búsqueda que ejecute un ls -l en lo que encuentre.
encuentra / home / ken / foo -name bar -exec ls -l {}; /
NOTA: Hay un espacio entre {} y;
Obtendrás algo como esto:
-rw-r - r-- 1 ken admin 181 27 de enero 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 que la ruta de búsqueda comience con "/", obtendrá una ruta absoluta a cambio. Si está buscando una ubicación (como /) donde va a recibir muchos errores de permiso denegado, entonces recomendaría redirigir el error estándar para que pueda ver los resultados de la búsqueda:
busque / -nombre barra -exec ls -l {}; / 2> / dev / null
(2> es la sintaxis de las carcasas portada y bash, pero no funcionará con c shell. Puede funcionar también en otras shells, pero solo sé con certeza que funciona en bourne y bash).
¡Espero que esto ayude!
Use esto para dirs:
ls -d -1 $PWD/**
esto para archivos:
ls -d -1 $PWD/*.*
esto para todo:
ls -d -1 $PWD/**/*
Tomado de aquí http://www.zsh.org/mla/users/2002/msg00033.html
find / -print
hará esto
ls -1 | awk -vpath=$PWD/ ''{print path$1}''
ls -d $PWD/*
lspwd() { for i in $@; do ls -d -1 $PWD/$i; done }
readlink -f filename
Da el camino absoluto completo. pero si el archivo es un enlace simbólico, obtendrás el nombre final resuelto.