Tam yol adının gerçekten ne anlama geldiğini anlamak isterim. Ev dizinimde my_script adında bir dosya var. Tam yol adının ./my_script olduğunu, bunun kök klasörde olduğunu, ancak emin olmadığımı varsaydım. Birisi bana bunu aydınlatır mı?
Tam yol adının gerçekten ne anlama geldiğini anlamak isterim. Ev dizinimde my_script adında bir dosya var. Tam yol adının ./my_script olduğunu, bunun kök klasörde olduğunu, ancak emin olmadığımı varsaydım. Birisi bana bunu aydınlatır mı?
Hayır, varsayım yanlış. Ana dizininizden my_script
dosyasının tam yol adı: /home/your_user_name/my_script
. Terminalde ./my_script
yazdığınızda aslında betiği çalıştırmayı deneyebilirsiniz (eğer çalıştırılabilir ise) ve sadece mevcut çalışma dizininiz /home/your_user_name/
ise çalıştırılacaktır. Komut dosyasını çalıştırmak için, /home/your_user_name/my_script
dediğim gibi tam dosya yolunu da kullanabilirsiniz.
Bir UNIX yol adının İnternet adresleri gibi göründüğü ve hissedildiği, dolayısıyla uyumluluğa neden olduğu düşünülür. Geçerli çalışma dizininin tam yol adı, aşağıdaki komut kullanılarak terminalde bulunabilir:
pwd
Kullanıcı giriş dizininizin tam yolunu bulmak için şunları kullanabilirsiniz:
echo ~
echo $HOME
echo /home/$USER
Yukarıdaki üç komut eşdeğerdir.
Bir dosyanın tam yol adını bulmak için readlink
komutunu kullanabilirsiniz. Örneğin, durumunuza göre:
cd ~
readlink -f my_script
Tam yol adı, dosya sisteminin /
dizinindeki dosya veya klasörün tam yolunu ifade eder.
Örneğin, komut dosyanızın tam yolu:
/home/your_username/my_script
Veya, grep
yürütülebilir dosyasının tam yol adı
/bin/grep
./my_script
için, .
sembolü geçerli dizini gösterir. Bu nedenle, "My_script adlı bir dosya veya klasör için geçerli dizinin altına bakın" demeniz gerekir.
Tam yolu anlamak için öncelikle başlangıç noktasını bilmelisiniz.
Kök dizini /
, * nix tabanlı işletim sistemlerinin başlangıç noktasıdır. Sistemin ve kullanıcının tüm diğer dizinlerini içerir.
Kullanıcı ana dizini /home/USERNAME/
veya ~/
kısa, kullanıcının dosyalarını ve dizinlerini içerir. Örneğin Resimler, Müzik, Belgeler, vb. Bu dizinlerin her biri /home/USERNAME/DIRECTORY
olarak başvuruda bulunulabilir. Örneğin, Belgeler /home/USERNAME/Documents
adresinde bulunur.
Dizinlerde olduğu gibi, dosyalar da aynı şekilde başvurulur, örneğin my_script
dizininde sosytee
adlı bir dosya, /home/sosytee/my_script
veya ~/my_script
dizininin tamamı için tam yol kullanılarak başvuruda bulunabilir .
Her iki dosya ve dizin, sistemdeki her yerden tam yollarını kullanarak başvurulabilir / erişilebilir. Ek olarak, aynı dizinde bulunuyorsa bunlara sadece isimlerini kullanarak erişebilirsiniz. Örneğin, kullanıcı terminali kullanırken ~/
değerinde ise, my_script
dosyasına my_script
dizinini kullanarak erişebilir.
Ayrıca, dizin ve dosyalara yalnızca kendi adlarını kullanarak, PATH değişkenine yerleştirildiklerinde erişebilirler. PATH içindeki depoyu echo $PATH
kullanarak görebilirsiniz.
Komut satırını kullanarak dosyalara nasıl erişileceği hakkında basit örnekler:
/home/USERNAME/
adresindedir ve cat
adlı foo.txt adında bir dosyada /home/USERNAME/Documents
komutunu kullanmak istiyor: cat Documents/foo.txt
Kullanıcı% co_de içerideydi ve ~/Documents
konumlu reklam foo.sh
adlı bir komut dosyasını çalıştırmak istiyor:
~/Scripts/Foo
veya
sh ../Scripts/Foo/foo.sh
tüm bunların anlamı sadece bir özet.
Daha fazla bilgi
Yeni Başlayanlar İçin Bash Rehberi , tarafından Machtelt Garrels
PATH hakkında daha fazla bilgi için buradaki
Unix dizin yapısı hakkında
Tam yol adı, kök dizinden (örn. /
) olan yoldur.
./my_script
, göreli yol adıdır, çünkü yol, .
ile belirtilen geçerli dizine göreceli olarak verilir.
Yani eğer ev dizininizdeyseniz, yolun tamamı yoludur. /home/sosytee/my_script
gibi. Ev dizininiz için "cok ~
", ~/my_script
yazabilirsiniz. Ancak bu elbette, her kullanıcı için farklı bir yola gidecektir.
Geçerli dizininizin tam yolunu görmek için pwd
aramayı deneyin.
Tam yol adının üstlendiğini farz ettim ./my_script
Hayır, öyle değil. Bu yol göreli. Başlangıçtaki nokta geçerli dizini gösterir:
$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory
Gördüğünüz gibi, dizini değiştirdim ve my_script
bulunamıyor, yani ./my_script
mutlak bir yol değil.
Tam yol adının, root klasöründe olduğu anlamına gelen ./my_script olduğunu varsadım, ancak emin değilim.
Wikipedia 'dan:
[...] Tam yol veya mutlak yol , çalışma dizinine veya birleşik yollara bakılmaksızın bir dosya sisteminde aynı konuma işaret eden bir yoldur.
./my_script
, <%> my_script
dosyasını bulabildiğim durumunu göremediğinden, göreceli bir yol olduğu sonucuna varmalıyız.
göreli yol , kullanıcının veya uygulamanın çalışma dizinine göre bir yoldur, bu nedenle tam mutlak yolun verilmesi gerekmez.
Etiketlerdeki diğer soruları oku command-line paths