Bagaimana Anda bisa dengan cepat mendapatkan path lengkap ke file untuk digunakan di terminal?
Bagaimana Anda bisa dengan cepat mendapatkan path lengkap ke file untuk digunakan di terminal?
Jawaban:
readlink -f foo.bar
atau (instal dulu)
realpath foo.bar
ls | xargs realpath
.
readlink
ini adalah itu akan berfungsi bahkan jika file tersebut tidak ada. Ini dapat mengabadikan bug dengan cara yang sangat aneh.
Cukup seret dan jatuhkan file di terminal.
'/home/alexcohn/.gvfs/…'
Semua jawaban bagus; Berikut ini tip untuk situasi lain.
Jika Anda meramban file menggunakan nautilus dan Anda ingin path lengkap dari direktori Anda saat ini, kemudian tekan CTRL+L
. Ini mengubah tombol remah roti untuk sementara kembali ke bilah alamat gaya lama, memungkinkan Anda untuk menyalin lintasan.
smb://
bergaya, jadi tidak bisa digunakan kembali di terminal.
smb://
path-style.
Jika ini adalah executable, maka jalankan (di terminal):
$ which your_executable
Sebagai contoh: $ which ls
Selain menyeret ikon, ada beberapa cara untuk mendapatkan path lengkap tanpa nautilus (atau thunar, konqueror, et al.). Anda kemudian akan klik tiga kali atau klik-seret dan salin, berpotensi menyimpan ini di clipboard manager Anda *, dan menempelkannya di tempat yang Anda butuhkan.
(pastie, klipper, glippy, glipper, anamnesis)
Anda dapat menggunakan find
direktori di atas file Anda. (Jika Anda tidak tahu di mana itu, mulailah dari mana shell Anda menjatuhkan Anda, [umumnya] di bagian atas direktori home Anda.)
find . | egrep filename
Anda dapat menggunakan locate
untuk mendapatkan nama file. (Jalankan sudo updatedb
jika itu belum dilakukan baru-baru ini.)
Contoh yang lebih realistis dari penggunaan find adalah sesuatu seperti:
$ 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
[...]
Untuk memotong yang tidak Anda sukai, misalnya:
find | egrep askubuntu | grep txt | egrep -v iteration
find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other'
loc digunakan dengan cara yang sama, meskipun grep seringkali lebih diperlukan:
locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py
Ini bukan cara paling efisien untuk mengetik ini, tetapi biasanya jika saya kehilangan file, saya melakukannya secara iteratif, menambahkan grep clauses saat saya menggunakannya.
Mudah dilakukan dengan python menggunakan os.realpath()
fungsi:
$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/
/mnt/HDD/VirtualBox VMs
Dari jawaban terkait , Anda juga dapat menggunakanreadlink
$ readlink -e ./out.txt
/home/username/out.txt
Jika Anda cukup menyalin file di Nautilus, maka path lengkap disalin.
Kemudian tempel di terminal. Dengan hanya menempelkan Anda mendapatkan:
file:///home/juan/2017/agenda20170101.html
Jika Anda mengklik kanan dan memilih "Tempel nama file" maka Anda mendapatkan:
'/home/juan/2017/agenda20170101.html'
dengan tanda kutip seperti yang ditunjukkan.
Ini berbeda dari Windows, yang menyalin konten file alih-alih namanya.