Terminalde kullanmak için bir dosyanın tam yolunu hızlı bir şekilde nasıl elde edebilirsiniz?


Yanıtlar:


44
readlink -f foo.bar

veya (önce kurun)

realpath foo.bar

Bu cevap, kabul edilenden daha doğru.
Kunok

Komple klasör için: ls | xargs realpath.
Pablo

1
Dezavantajı readlink, dosya olmasa bile çalışacak olmasıdır. Bu, böcekleri çok garip şekillerde sürdürebilir.
GregRos

32

Sadece dosyayı terminalde sürükleyip bırakın.


1
Bunu buraya koyuyorum ki unutmam, umarım bazılarınızın yardımı olur: D
Olivier Lalonde

Asıl takılan yol yerine SMB'nin bağlı hisseleri için "smb: //" ön ekli bir yol döndürür.
Kupiakos

@Kupiakos: benim için gnome-terminal, bırakılan dosya yolunu mutlulukla çevirir'/home/alexcohn/.gvfs/…'
Alex Cohn

11

Tüm iyi cevaplar; İşte başka bir durum için bir ipucu.

Nautilus kullanarak dosyalarınızı tarıyorsanız ve geçerli dizininizin tam yolunu istiyorsanız, tuşuna basın CTRL+L. Bu, ekmek kırıntısı düğmelerini geçici olarak eski stil adres çubuğuna değiştirerek yolu kopyalamanıza olanak tanır.


… Ama bu hala smb://tarz, bu yüzden terminalde tekrar kullanılamaz.
Alex Cohn

İlginç; Sistemimde (Ubuntu 13.10) smb://Stil yolu bulamıyorum.
Sicco

Tam olarak aradığım şey, terminalin ls için harika bir yer olduğunu, ancak bir dosya klasörü görünümünde çalıştığınız zamanların olduğu anlamına geliyor: ')
edencorbin

3

Eğer çalıştırılabilir ise, çalıştır (bir terminalde):

$ which your_executable

Örneğin: $ which ls


Aradığım cevap bu
Sharjeel Ahmed

1

Simgeyi sürüklemeye ek olarak, nautilus (veya thunar, konqueror, vd.) Olmadan tam yolu elde etmenin birkaç yolu vardır. Daha sonra üçlü tıklayıp tıklatıp sürükleyip kopyalayın, bunu potansiyel olarak pano yöneticinize kaydedin * ve ihtiyacınız olan yere yapıştırın.
(pastie, klipper, kayma, kayma, anamnez)

  • findDosyanızın üzerindeki bir dizinde kullanabilirsiniz . (Nerede olduğunu bilmiyorsanız, kabuğunuzun sizi [genellikle] ana dizininizin üstüne bıraktığı yerden başlayın.)
    find . | egrep filename

  • locateDosya adını almak için kullanabilirsiniz . ( sudo updatedbBu yakın zamanda yapılmadıysa koş .)

Find'ı kullanmanın daha gerçekçi bir örneği şöyle bir şey olabilir:

$ 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
[...]

Sevmediklerinizi kesmek için, örneğin:

find | egrep askubuntu | grep txt | egrep -v iteration
find | egrep askubuntu | grep txt | egrep -v 'iteration|meta|other'

grep çoğunlukla daha gerekli olsa da, locate aynı şekilde kullanılır:

locate myfile | egrep home | egrep -v 'mozilla|cache|local|bin|\.pyc|test' | grep \.py

Bunu yazmanın en etkili yolu bu değildir, ancak genellikle bir dosyayı kaybettiyseniz, ilerledikçe gep cümleleri ekleyerek bunu yinelemeyle yapıyorum.


1

os.realpath()Fonksiyonu kullanarak python ile kolayca yapılabilir :

$ python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ./VirtualBox\ VMs/                                      
/mnt/HDD/VirtualBox VMs

Bir itibaren ilgili cevap , ayrıca kullanabilirsinizreadlink

$ readlink -e ./out.txt                                                                                                  
/home/username/out.txt

0

Nautilus'ta bir dosyayı basitçe kopyalarsanız, tam yol kopyalanır.
Ardından terminale yapıştırın. Sadece yapıştırarak elde edersiniz:

file:///home/juan/2017/agenda20170101.html

Sağ tıklayıp "Dosya adlarını yapıştır" ı seçerseniz, aşağıdakileri elde edersiniz:

'/home/juan/2017/agenda20170101.html'

gösterildiği gibi tırnak.
Bu, dosya içeriğini adı yerine kopyalayan Windows'tan farklıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.