¿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.
readlinkes 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 finden 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 locatepara obtener el nombre del archivo. (Ejecutar sudo updatedbsi 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.