¿Cómo puede obtener rápidamente la ruta completa a un archivo para usar en la terminal?
¿Cómo puede obtener rápidamente la ruta completa a un archivo para usar en la terminal?
Respuestas:
readlink -f foo.bar
o (instalarlo primero)
realpath foo.bar
ls | xargs realpath
.
readlink
es que funcionará incluso si el archivo no existe. Esto puede perpetuar errores de maneras muy extrañas.
Simplemente arrastre y suelte el archivo en la terminal.
'/home/alexcohn/.gvfs/…'
Todas buenas respuestas; Aquí hay un consejo para otra situación.
Si está explorando sus archivos con nautilus y desea la ruta completa de su directorio actual, presione CTRL+L
. Esto cambia los botones de ruta de navegación temporalmente a la barra de direcciones de estilo antiguo, lo que le permite copiar la ruta.
smb://
estilo, por lo que no se puede reutilizar en la terminal.
smb://
ruta de estilo.
Si es un ejecutable, ejecute (en una terminal):
$ which your_executable
Por ejemplo: $ which ls
Además de arrastrar el ícono, hay algunas formas de obtener el camino completo sin nautilus (o thunar, konqueror, et al.). Luego, debe hacer triple clic o hacer clic y arrastrar y copiar, potencialmente guardando esto en su administrador de portapapeles *, y pegarlo donde lo necesite.
(pastie, klipper, glippy, glipper, anamnesis)
Puede usar find
en un directorio sobre su archivo. (Si no sabe dónde está, comience donde su shell lo deja caer, [generalmente] en la parte superior de su directorio de inicio).
find . | egrep filename
Puede usar locate
para obtener el nombre del archivo. (Ejecutar sudo updatedb
si eso no se ha hecho recientemente).
Un ejemplo más realista de usar find sería algo como:
$ find | egrep askubuntu | grep txt
./askubuntu-temp.txt
./drDocuments/web/meta.askubuntu.txt
./other/stuff/askubuntu.txt.iteration.1
./other/stuff/askubuntu.txt.iteration.2
[...]
Para cortar los que no te gustan, por ejemplo:
find | egrep askubuntu | grep txt | egrep -v iteration
find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other'
localizar se usa de la misma manera, aunque grep es frecuentemente más necesario:
locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py
Esta no es la forma más eficiente de escribir esto, pero generalmente si he perdido un archivo, lo hago de forma iterativa, agregando cláusulas grep a medida que avanzo.
Fácilmente hecho en python usando la os.realpath()
función:
$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/
/mnt/HDD/VirtualBox VMs
De una respuesta relacionada , también puedes usarreadlink
$ readlink -e ./out.txt
/home/username/out.txt
Si simplemente copia un archivo en Nautilus, se copia la ruta completa.
Luego pégalo en la terminal. Simplemente pegando obtienes:
file:///home/juan/2017/agenda20170101.html
Si hace clic derecho y elige "Pegar nombres de archivos", obtendrá:
'/home/juan/2017/agenda20170101.html'
con las comillas como se muestra.
Esto difiere de Windows, que copia el contenido del archivo en lugar de su nombre.