Belirli bir yoldan önce. / 'İn anlamı nedir?


25

Bunu çalıştırmam söylendi:

./yiic message ./app/messages/config.php

Ama ./anlamını anlamıyorum, kimse lütfen açıklığa kavuşturur.

Not: İnanın bana, bunu google'da yapamayız. Denedim:

./ anlamı ./ ubuntu

Hiçbir şey ile aynıydı. :(


3
Bu durumlarda, en iyisi bu çok yararlı sonuç veren "nokta eğik çizgi" yi
aramaktır

Yanıtlar:


29

./ya da sadece .geçerli dizin için unix kısaltmasıdır.

Geçerli dizin PATH'inizde değilse onu belirtmeniz gerekir. PATH, bir programı çalıştırdığınızda aranan klasörlerin listesidir. (Yazarak belirleyebilirsiniz echo $PATH.) PATH'inizde yürütülebilir bir dosya yoksa, çalıştırmak için içinde bulunduğu klasörü belirtmeniz gerekir. Dosyaya tam yolunu vererek, ancak dosya içindeyse, bunu yapabilirsiniz. Geçerli dizini, ./steno olarak kullanabilirsiniz .

Benzer şekilde, ../ya ..da geçerli olanın üzerindeki dizin için kısaca.


17
Birisi Yanıtlarında içermelidir neden $ PATH içermiyor .. Bunun nedeni, geçerli dizinin otomatik olarak kullanılmasının bir güvenlik deliği olmasıdır. Başka birisinin bir program lsyaptığını cd, onun ismini ve dizini ls
eklediğini

1
@Zan bunu hep merak etmişimdir, kimsenin sormadığı soruya verdiğiniz cevap için teşekkür ederim, ama birisinin alması gerekiyordu.
crasic

@ZanLynx harika yorum / ekleme, yorumlar kaybolabileceğinden, cevabın düzenlenmesi gerekir.
NSGaga

15

Komut satırında her dizin olarak adlandırılan iki "özel dizinleri" vardır .ve ... Bunlar sırasıyla geçerli dizin ve geçerli dizini içeren dizin içindir.

Örneğin, cd ./more/directory/namessadece "geçerli dizine başla ve yola devam et" anlamına gelir. Benzer şekilde, komut cd .."dizini yukarı değiştir" anlamına gelir.

Geçerli dizininizin adını istiyorsanız, pwdkomutu kullanabilirsiniz . Ayrıca, -abayrak için kullanırsanız, lsbu iki özel dizini görebilirsiniz. Yani, ve ls -aile başlayan bir liste çıkarır ....


mükemmel bir ekleme root45 +1 :)
Rinzwind

4

Diğerleri zaten ne anlama geldiğini .ve ne ..anlama geldiğini açıkladı (sırasıyla geçerli dizin ve ana dizin). Bu, tüm yol adları için geçerlidir.

Bir terminal açtığınızda, genellikle ana dizininizde başlarsınız: ~(genişler /home/username). Aşağıdaki yolları geçerli çalışma dizini olan sağlayarak, tüm eşdeğerdir /home/username:

  • /home/username
  • .
  • ../username
  • ../../home/username
  • ../../../home/username(üst dizin /hala /)
  • ./././././. (... içindeki geçerli dizindeki geçerli dizin ...)
  • ./ (dizinler için sondaki eğik çizgilere izin verilir)
  • /home////username/// (ve böylece çoklu eğik çizgiler)

Do not karıştırmayın ./programile . program. ./programYürütme bit setiyle geçerli dizindeki bir dosyayı çalıştırır . ./programbash şeydir ve alternatif olarak o anki dizindeki dosyadan source ./programbash komutlarını okuyan programve bunları geçerli kabukta çalıştıran şekilde yazılabilir .

Size sadece çalıştırabilirsiniz neden merak ederse gedityerine /usr/bin/geditdeğil programyerine ./programveya /home/username/programilgili soruya bakın:


3

Den başlamak demektir current directory path.

Diyelim ki böyle bir şeyiniz var path:

/usr/ /usr/bin/ /usr/local/bin

ve içinde /usr/bin/bir de çalıştırılabilir dosya var yiic.

Sorun çıkarırsanız yiic, bir tane başlayacak /usr/bin/.

Düzenleyerek ./yiic, sisteme bu yürütülebilir dosya için geçerli dizine bakmasını söyleyin.


Tamam ... ama hala anlamadım. Diyelim ki içimde yiğit var /home/mysuser/ve orada kullanarak oraya gidiyorum cd /home/myuser. Bir kere içeri girince, sadece yiic yapmanın işe yarayacağına inandım çünkü bu dizinde aradım. Ama emir vermeyeceğini söylüyor. Aynı şeyi yaparsam ve ./ kullanırsam düzgün çalışır. Lütfen biraz daha açıklığa kavuşturur musunuz?
MEM

@frabjous bu yorumu yanıtladı.
MEM

Hayır! Geçerli dizini kullanmasını söylemediğiniz sürece, her zaman PATH yönergesine bakacaktır. User45'in cevabına bakınız: dizinde .bir işlem yaparken görebileceğiniz bir klasör içindeki özel bir dosyadır ls -la;)
Rinzwind
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.