Tam yol adının gerçekte ne anlama geldiğini anlamak isterim. Ana dizinde my_script adlı bir dosya var. Tam yol adının ./my_script olduğunu ve bunun kök klasöründe olduğunu varsaydım, ancak emin değilim. Biri lütfen beni bu konuda aydınlatabilir mi?
Tam yol adının gerçekte ne anlama geldiğini anlamak isterim. Ana dizinde my_script adlı bir dosya var. Tam yol adının ./my_script olduğunu ve bunun kök klasöründe olduğunu varsaydım, ancak emin değilim. Biri lütfen beni bu konuda aydınlatabilir mi?
Yanıtlar:
Hayır, varsayımın yanlış. Tam yol adı my_script
ev dizininden dosyaya geçerli: /home/your_user_name/my_script
. ./my_script
Terminale yazdığınızda , aslında senaryoyu (çalıştırılabilirse) çalıştırmayı denersiniz ve sadece geçerli çalışma dizininiz varsa çalıştırılır /home/your_user_name/
. Komut dosyasını yürütmek için dediğim gibi tam dosya yolunu kullanabilirsiniz /home/your_user_name/my_script
.
Bir UNIX yol adının İnternet adresleri gibi göründüğüne ve böyle hissettiğine inanılmaktadır, bu nedenle uyumlulukla sonuçlanmaktadır. Geçerli çalışma dizininin tam yol adı, aşağıdaki komut kullanılarak terminalde bulunabilir:
pwd
Kullanıcı ana 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
komutu kullanabilirsiniz . Örneğin, sizin durumunuzda:
cd ~
readlink -f my_script
readlink
, yumuşak bağlantıları 'gerçek yolunu
Tam yol adı gerçekten, o dosya veya klasörün, dosya sisteminin /
dizinindeki tam yol anlamına gelir .
Örneğin, komut dosyanızın tam yolu:
/home/your_username/my_script
Veya grep
çalıştırılabilir dosyanın tam yol adı
/bin/grep
Gelince ./my_script
, sembol .
sen actuallly "Bir dosya için geçerli dizin altında Look veya adlandırılmış my_script klasör" demek bu yüzden, geçerli dizinde açılımı
Tam yolu anlamak için önce başlangıç noktasını bilmeniz gerekir.
Kök dizini /
, * nix tabanlı işletim sistemlerinin başlangıç noktasıdır. Hem sistemin hem de kullanıcının diğer tüm dizinlerini içerir.
Kullanıcının giriş dizini /home/USERNAME/
veya ~/
kısaca, kullanıcının dosyalarını ve dizinlerini içerir. Örneğin, Resimler, Müzik, Belgeler, vb. Bu dizinlerin her birine /home/USERNAME/DIRECTORY
, örneğin Belgeler adresinde yer verilmiştir /home/USERNAME/Documents
.
Dizinlerde olduğu gibi, dosyalara aynı şekilde başvurulur, örneğin my_script
, kullanıcının giriş dizininde yer alan bir dosyaya sosytee
tam yol /home/sosytee/my_script
veya ~/my_script
kısa yolla başvurulabilir .
Hem dosyalar hem de dizinler, sistemdeki her yerden tam yolları kullanılarak referans alınabilir / erişilebilir. Ek olarak, bir kişi aynı dizinde ise sadece isimlerini kullanarak erişebilir. Örneğin, kullanıcı ~/
terminali my_script
kullanıyorsa, sadece kullanarak dosyaya erişebilir my_script
.
Ek olarak, birisi PATH değişkenine yerleştirilmişse, yalnızca isimlerini kullanarak dizinlere ve dosyalara erişebilir. PATH'te nelerin depolandığını kullanarak görebilirsiniz echo $PATH
.
Komut satırını kullanarak dosyalara nasıl erişileceğine dair basit örnekler:
/home/USERNAME/
ve bu cat
komutu /home/USERNAME/Documents
foo.txt adlı bir dosyada kullanmak istiyor :cat Documents/foo.txt
Kullanıcı içeride ~/Documents
ve foo.sh
bulunan ad adında bir komut dosyası çalıştırmak istiyor ~/Scripts/Foo
:
sh ../Scripts/Foo/foo.sh
veya
sh ~/Scripts/Foo/foo.sh
elbette bu sadece bir özetidir.
Daha fazla bilgi
Machtelt Garrels tarafından Başlayanlar için Bash Rehberi
Burada PATH hakkında daha fazla bilgi
Hakkında Unix dizin yapısı
Tam yol adı, kök dizinden gelen yoldur (yani /
).
./my_script
göreceli yol adıdır, çünkü yol göreceli olarak gösterilen geçerli dizine verilmiştir .
. Eğer ev dizininizdeyse, tam yol s.th. gibi /home/sosytee/my_script
. Ana dizininiz için "kısa yol" var ~
, yani yazabilirsiniz ~/my_script
. Ancak bu elbette her kullanıcı için farklı bir yolla çözülecek.
Geçerli rehber çağrınızın tam yolunu görmek için pwd
.
Tam yol adının ./my_script olduğunu varsaydım.
Hayır öyle değil. Bu yol görecelidir. Baş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
bulunamadı, yani bu ./my_script
mutlak bir yol değil.
Tam yol adının ./my_script olduğunu ve bunun kök klasöründe olduğunu varsaydım, ancak emin değilim.
Gönderen Vikipedi :
[...] Tam yol veya mutlak yol , çalışma dizininden veya birleşik yollardan bağımsız olarak bir dosya sisteminde aynı konuma işaret eden yoldur.
Yana ./my_script
bu şartı doldurmayın ben bulabilirim kalsam my_script
dosyayı , biz anlaması gerektiğini göreli bir yoldur.
Bir göreli yol tam mutlak yol verilmelidir gerek kalmaz, böylece kullanıcı veya uygulama çalışma dizinine bir yol görecelidir.
İşte ... soruyorum sanırım Ubuntu sunucusunu pencerelere kurdunuz ...
bu kodu pencerelerdeki klasör gezgine kopyalayın %userprofile%\AppData\Local\Packages
bu size ev yerini gösterecek ... sisteminizde bir yere gizlenmiş
Bu klasörde, dosyalarını görüntülemek istediğiniz Linux dağıtımının klasörünü çift tıklatın:
Bu klasörlerin adları gelecekte biraz değişebilir. Sadece Linux dağıtımından sonra adlandırılmış bir klasör arayın.
evin altında olacak LocalState\rootfs\home
Bu bilgilerin çoğu, Windows'taki Ubuntu Bash Dosyalarına Nasıl Erişilir (ve Bash'deki Windows Sistem Sürücünüz)