![¿Cómo enumero archivos con rutas completas en Linux?](https://rvso.com/image/1345272/%C2%BFC%C3%B3mo%20enumero%20archivos%20con%20rutas%20completas%20en%20Linux%3F.png)
En Linux, ¿existe un equivalente Dir /s /a /b
donde aparece la ruta completa y el nombre del archivo? Soy nuevo en Linux y sin una GUI, quiero tener una idea de la estructura de lo que hay en el disco duro.
Respuesta1
Utilice el find
comando. De forma predeterminada, enumerará de forma recursiva todos los archivos y carpetas que descienden de su directorio actual, con la ruta completa (relativa).
Si desea la ruta completa, utilice:
find "$PWD"
Si desea la ruta relativa, utilice:
find .
Aquí $PWD
hay una variable que contiene el directorio de trabajo actual.
Algunas opciones:
- Si desea restringirlo solo a archivos o carpetas, use
find "$PWD" -type f
ofind -type d
, respectivamente. - Si desea que se detenga en una determinada profundidad de directorio, utilice
find "$PWD" -maxdepth 2
, por ejemplo.
LeerEncontrar archivospara obtener un manual extenso sobre GNU find
, que es el valor predeterminado en Linux.
Respuesta2
Tuve esta misma pregunta hoy. Encontré un comando llamado "realpath". Aquí hay un ejemplo:
$ realpath ~/.bashrc
/home/harleygolfguy/.bashrc
Respuesta3
Solución Linux:
$ pwd
/home/victoria
$ find $(pwd) -maxdepth 1 -type f -not -path '*/\.*' | sort
/home/victoria/new
/home/victoria/new1
/home/victoria/new2
/home/victoria/new3
/home/victoria/new3.md
/home/victoria/new.md
/home/victoria/package.json
/home/victoria/Untitled Document 1
/home/victoria/Untitled Document 2
$ find . -maxdepth 1 -type f -not -path '*/\.*' | sed 's/^\.\///g' | sort
new
new1
new2
new3
new3.md
new.md
package.json
Untitled Document 1
Untitled Document 2
Notas:
.
: carpeta actual- eliminar
-maxdepth 1
para buscar recursivamente -type f
: busca archivos, no directorios (d
)-not -path '*/\.*'
: no volver.hidden_files
sed 's/^\.\///g'
: elimina el antepuesto./
de la lista de resultados
Respuesta4
Para completar, el ls -lR /
comando enumerará el nombre de cada archivo, el tipo de archivo, los bits del modo de archivo, la cantidad de enlaces físicos, el nombre del propietario, el nombre del grupo, el tamaño y la marca de tiempo de cada archivo (al que tiene permiso para acceder) desde la raíz. directorio abajo. ( l
es para una lista larga, es decir, toda esa información, R
es recurrente a través de directorios, /
comienza en la raíz del sistema de archivos).
Hay una serie de parámetros para acercar la información de salida a dir /S /A
, pero debo admitir que no sé cómo traducir el archivo /B
.
Para obtener información útil, intentaría: ls -lAFGR --si /
dónde
- l = lista larga (como se mencionó anteriormente)
- A = casi todos los archivos (no incluye . y .. en cada directorio, pero muestra todos los archivos ocultos)
- F = mostrar indicador de archivo (uno
*
para archivos exe,/
directorios,@
enlaces simbólicos,|
FIFO,=
sockets y>
puertas) - G = no mostrar información del grupo (elimina esto si quieres verlo)
- R = listar recursivamente directorios (subdirectorios) y
- --si = muestra el tamaño del archivo en formato legible por humanos, por ejemplo, formato 1M (donde 1M = 1000B)
ls
puede proporcionar una sinopsis más fácil de leer de los directorios y archivos dentro de esos directorios, ya que find
la salida de ' puede ser difícil de escanear cuando los archivos están contenidos dentro de estructuras de directorios muy largas (que abarcan varias líneas). El corolario es que cada archivo aparece por sí solo (es decir, sin información de ruta de directorio) y es posible que tenga que retroceder un par de páginas/pantallas para encontrar los directorios en los que se encuentra un archivo en particular.
Además, buscar no contiene la información /A en el comando DIR. He sugerido una serie de atributos en el comando que he mostrado (que coincidentemente muestran la utilidad adicional que obtienes de Linux sobre un determinado sistema propietario), pero si lees las páginas man
y info
en ls
, podrás ver qué incluir o no.