Bagaimana Anda bisa dengan cepat mendapatkan path lengkap ke file untuk digunakan di terminal?


Jawaban:


44
readlink -f foo.bar

atau (instal dulu)

realpath foo.bar

Jawaban ini lebih akurat daripada yang diterima.
— Kunok

Untuk folder lengkap: ls | xargs realpath.
— Pablo A

1
Kelemahan dari readlinkini adalah itu akan berfungsi bahkan jika file tersebut tidak ada. Ini dapat mengabadikan bug dengan cara yang sangat aneh.
— GregRos

32

Cukup seret dan jatuhkan file di terminal.


1
Saya meletakkan ini di sini agar saya tidak lupa, semoga ini membantu beberapa dari Anda: D
— Olivier Lalonde

Mengembalikan jalur awalan "smb: //" untuk saham yang dipasang SMB alih-alih jalur terpasang yang sebenarnya.
— Kupiakos

@Kupiakos: bagi saya, gnome-terminal dengan senang hati menerjemahkan jalur file yang dijatuhkan ke'/home/alexcohn/.gvfs/…'
— Alex Cohn

11

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.


... tapi ini masih smb://bergaya, jadi tidak bisa digunakan kembali di terminal.
— Alex Cohn

Menarik; pada sistem saya (Ubuntu 13.10) saya tidak mendapatkan smb://path-style.
— Sicco

Persis apa yang saya cari, maksud saya terminal adalah tempat yang bagus untuk ls tetapi ada saat-saat Anda bekerja dalam tampilan folder file: ')
— edencorbin

3

Jika ini adalah executable, maka jalankan (di terminal):

$ which your_executable

Sebagai contoh: $ which ls


Ini adalah jawaban yang saya cari
— Sharjeel Ahmed

1

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 finddirektori 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 locateuntuk mendapatkan nama file. (Jalankan sudo updatedbjika 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.


1

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

0

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.