Come è possibile ottenere rapidamente il percorso completo di un file da utilizzare nel terminale?
Come è possibile ottenere rapidamente il percorso completo di un file da utilizzare nel terminale?
Risposte:
readlink -f foo.bar
o (installarlo prima)
realpath foo.bar
ls | xargs realpath
.
readlink
è che funzionerà anche se il file non esiste. Questo può perpetuare i bug in modi molto strani.
Basta trascinare e rilasciare il file nel terminale.
'/home/alexcohn/.gvfs/…'
Tutte buone risposte; Ecco un suggerimento per un'altra situazione.
Se stai sfogliando i tuoi file utilizzando nautilus e desideri il percorso completo della directory corrente, premi CTRL+L
. In questo modo i pulsanti breadcrumb tornano temporaneamente alla barra degli indirizzi vecchio stile, consentendo di copiare il percorso.
smb://
stile, quindi non può essere riutilizzato nel terminale.
smb://
percorso in stile.
Se è un eseguibile, quindi eseguire (in un terminale):
$ which your_executable
Per esempio: $ which ls
Oltre a trascinare l'icona, ci sono alcuni modi per ottenere il percorso completo senza nautilus (o thunar, konqueror, et al.). Dovresti quindi fare triplo clic o fare clic e trascinare e copiare, salvandolo potenzialmente nel gestore degli Appunti * e incollandolo dove necessario.
(pastie, klipper, glippy, glipper, anamnesi)
Puoi usarlo find
in una directory sopra il tuo file. (Se non sai dove si trova, inizia da dove la shell ti fa cadere, [generalmente] nella parte superiore della tua home directory.)
find . | egrep filename
È possibile utilizzare locate
per ottenere il nome file. (Esegui sudo updatedb
se non è stato fatto di recente.)
Un esempio più realistico dell'uso di find sarebbe qualcosa del tipo:
$ 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
[...]
Per ritagliare quelli che non ti piacciono, ad esempio:
find | egrep askubuntu | grep txt | egrep -v iteration
find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other'
individuare è usato più o meno allo stesso modo, sebbene grep sia spesso più necessario:
locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py
Questo non è il modo più efficiente per digitare questo, ma di solito se ho perso un file, lo faccio iterativamente, aggiungendo clausole grep mentre procedo.
Facilmente eseguito in Python usando la os.realpath()
funzione:
$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/
/mnt/HDD/VirtualBox VMs
Da una risposta correlata , puoi anche usarereadlink
$ readlink -e ./out.txt
/home/username/out.txt
Se si copia semplicemente un file in Nautilus, viene copiato il percorso completo.
Quindi incollalo nel terminale. Semplicemente incollando ottieni:
file:///home/juan/2017/agenda20170101.html
Se fai clic con il pulsante destro del mouse e scegli "Incolla nomi di file", otterrai:
'/home/juan/2017/agenda20170101.html'
con le virgolette come mostrato.
Ciò differisce da Windows, che copia il contenuto del file anziché il suo nome.