CD yazmadan dizin değiştirilsin mi?


17

Komut satırında bash değişiklik dizinini, herhangi bir komut olmadan bu dizini yazarak yapmak mümkün müdür cd?

Örneğin, bunu yazmak yerine mümkün müdür:

$ cd /tmp

Sadece şunu yazmak istiyorum:

$ /tmp

Başka bir deyişle, dizini bir uygulama olarak çağırırsam, o dizini çalışan bir dizin olarak ayarlamak istiyorum.


9
Bash olması gerekiyor mu? zsh can do it ( autocd)
Michael Mrozek

1
Hayır, hayır, ben Bu bir betik dili olarak sadece bash ile emanetler vardır soğuk soğuk Rusya içinde bazı bilimsel kurumlarda olduğu gibi ana şartı var) bash = içinde çözüm gerek;)
Vladimir

"Cd" yazılmadan kaydedilen yazma miktarı, yollar için akıllı varsayılan otomatik tamamlamaya sahip olmayacak şekilde dengelenecektir. Ayrıca dirs değiştirmenin bu yöntemi, çoğu zaman dirs değiştirir, yanlışlıkla (potansiyel olarak kötü amaçlı) bir programın (bir dizin olduğunu düşündüğünüz) çalıştırılmasının çok olası hale gelmesi biraz korkutucu olur.
michael

Benim için
ZSH'de

Yanıtlar:


36

Bash'da da bir autocdseçenek var. Şunları kullanarak etkinleştirebilirsiniz shopt -s autocd:

pbm@tauri ~ $ shopt -s autocd
pbm@tauri ~ $ django # Now just type this
cd ./django    <- it's done automatically
pbm@tauri ~/django $

2
İnteraktif kullanım için bash 4'teki en sevdiğim yeni özellik. (Komut dosyası yazmak için, bu **.) Ne yazık ki, eski sürümlerde değil.
Gilles 'SO- kötü olmayı bırak'

0

Öyle düşünürdüm. Ubuntu'nun sahip olduğu bazı hepsini yakalama mekanizması var. Sistemde olmayan bir komutu çalıştırdığınızda, bazen şunu söyler:

Şunu mu demek istediniz: 'foo' komutu kastettiğiniz:

Bahse girerim ne olursa olsun ele geçirebilir ve bir dizin olup olmadığını görmek için bir kontrol ekleyebilirsiniz. Muhtemelen bunun ne olduğunu soran başka bir soru göndermeye değer.

EDIT: Bulundu: https://wiki.ubuntu.com/CommandNotFoundMagic


Evet, bu naif bir şekilde beklenir - ancak bash bizden daha akıllıdır ve dizinler için
command_not_found_handle'ı

Biraz araştırma yaptıktan sonra düzeltebilecek küçük bir yama ( mail-archive.com/bug-bash@gnu.org/msg06761.html ) buldum . Ne yazık ki bu yama gayri resmi olduğundan ubuntu ile sağlanan bash'ın stok versiyonuyla kullanılamaz.
Vladimir
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.