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.