Pwd neden --physical gibi uzun seçenekleri kabul etmiyor?


11

pwdKomut kılavuzunu görüntülediğimde, gibi uzun seçeneklerin --physicaldesteklendiğini söylüyor

$ man pwd
PWD(1)                           User Commands                          PWD(1)

NAME
       pwd - print name of current/working directory

SYNOPSIS
       pwd [OPTION]...

DESCRIPTION
       Print the full filename of the current working directory.

       -L, --logical
              use PWD from environment, even if it contains symlinks

       -P, --physical
              avoid all symlinks

Ancak, aşağıdakileri yazdığımda başarısız oluyor

$ pwd --physical
-bash: pwd: --: invalid option
pwd: usage: pwd [-LP]

Neden uzun seçenekler benim için çalışmıyor?

RHEL 6.4 kullanıyorum. Pwd için hiçbir diğer ad yapılandırılmadı. Standart pwd gibi görünüyor:

$ which pwd
/bin/pwd

1
Kılavuz sayfası bash'ın bir parçası olmayan bağımsız bir yardımcı program içindir.
Thomas Dickey

7
Kullanım typeyerine whichberi which, sadece gösterileri komutları ise typegösterileri anahtar kelimeler, builtins, takma adlar, işlevleri ve komutları (ve karma komuta yolları). Daha fazla ayrıntı için bkz. Neden “hangisini” kullanmıyorsunuz? O zaman ne kullanılır?
wjandrea

1
Sistemimde man pwdaşağıdaki not var: bölümün your shell may have its own version of pwd, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supportsalt DESCRIPTIONkısmında.
Nykakin

Yanıtlar:


26

bashkabuğunuza pwdyazarken kullandığınız yerleşik bir komut vardır pwd.

pwdManpage tarafından tarif edildiği gibi almak için harici komutun zorla kullanılması gerekir. Bunu, yürütülebilir dosyaya ( /bin/pwdyolunuzda) tam yolu belirterek veya satırdan envönce ekleyerek yapabilirsiniz : Bu env pwd, envortama ayarlar eklemek için kullanılabilen (ancak burada yapılmayan) komutu envbaşlatan ve sonra başlar. belirtilen komut. As envbir yerleşik yok pwd, "gerçek" /bin/pwdyürütülür.

Yerleşiğine avantajı pwdbash olmasıdır bashdeğer elde sıfır maliyetle yani dış komut ihtiyaçları çok daha IO yoğun olduğu yolu belirlemek için dosya sistemi aracılığıyla kadar arama yapmak için ise, geçerli dizinde izler.


4
Harici komut aslında böyle çalışmaz. unix.stackexchange.com/a/413225/5132
JdeBP

BTW: Ayrıca kabuk enable -n pwd
yerleşimini

@JdeBP Son kez baktım (uzun zaman önce :-)); ve şimdi getcwd()sistem çağrısını kullanırken, çekirdek hala ilgili veri yapılarına erişim nedeniyle çekirdek alanında yapılması daha kolay olan dosya sistemini dolaşıyor. çekirdeğin çalışma dizesini bir dizeyle izlememesi. "
wurtel

11

Bu manpage belgeleri /bin/pwd, ancak çalıştırdığınızda pwdyerleşik kabuk kullanırsınız; çıktısını görmek

type pwd

Kabuğunuzun yerleşik özelliği pwduzun seçenekleri desteklemez (kabuğunuzun belgelerine bakın; Bash kullandığınız help pwdiçin bir özet sunacaktı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.