เปลี่ยนไดเรกทอรีโดยไม่ต้องพิมพ์ cd?


17

มันเป็นไปได้ที่จะทำให้การเปลี่ยนไดเรกทอรีทุบตีในบรรทัดคำสั่งง่ายๆโดยพิมพ์ไดเรกทอรีว่าไม่มีคำสั่งใด ๆ เช่นcd?

ตัวอย่างเช่นเป็นไปได้แทนที่จะเขียนสิ่งนี้:

$ cd /tmp

ฉันแค่อยากจะเขียนสิ่งนี้เท่านั้น:

$ /tmp

กล่าวอีกนัยหนึ่งถ้าฉันเรียกไดเรกทอรีเป็นแอปพลิเคชันแล้วฉันต้องการตั้งค่าไดเรกทอรีนั้นเป็นไดเรกทอรีที่ใช้งานได้


9
มันจะต้องทุบตี? zsh สามารถทำมันได้ ( autocd)
Michael Mrozek

1
ไม่มีไม่มีไม่มีผมต้องแก้ปัญหาในทุบตี =) นั่นเป็นความต้องการหลักในขณะที่สถาบันวิทยาศาสตร์บางอย่างในเย็นเย็นรัสเซียมีพระธาตุกับทุบตีเป็นเพียงภาษาสคริปต์;)
วลาดิเมีย

จำนวนการพิมพ์ที่บันทึกไว้โดยไม่พิมพ์ "cd" น่าจะถูกชดเชยด้วยการไม่มีการเติมข้อความอัตโนมัติเริ่มต้นอัจฉริยะสำหรับเส้นทาง นอกจากนี้วิธีการในการเปลี่ยน dirs นี้บ่อยเท่าที่คน ๆ หนึ่งเคยเปลี่ยน dirs ก็น่ากลัวเล็กน้อยในกรณีที่เรียกใช้โปรแกรม (อาจเป็นอันตราย) โดยบังเอิญ
ไมเคิล

มันใช้งานได้สำหรับฉันใน ZSH
ishidex2

คำตอบ:


36

ในทุบตีนอกจากนี้ยังมีautocdตัวเลือก คุณสามารถเปิดใช้งานได้โดยใช้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
คุณสมบัติใหม่ที่ฉันโปรดปรานใน bash 4 สำหรับการใช้งานแบบโต้ตอบ (สำหรับการเขียนสคริปต์มัน**.) แต่น่าเสียดายที่มันไม่ได้อยู่ในรุ่นที่เก่ากว่า
Gilles 'หยุดชั่วร้าย'

0

ฉันจะจินตนาการอย่างนั้น มีกลไกการดักจับทั้งหมดที่ Ubuntu มี เมื่อคุณเรียกใช้คำสั่งที่ไม่ได้อยู่ในระบบบางครั้งคำสั่งจะแจ้งว่า:

ไม่พบคำสั่ง 'foo' คุณหมายถึง: ...

ฉันพนันได้เลยว่าคุณสามารถขโมยสิ่งที่เป็นและเพิ่มการตรวจสอบเพื่อดูว่ามันได้รับไดเรกทอรี อาจเป็นคำถามที่ถามว่าทำอะไร

แก้ไข: พบมัน: https://wiki.ubuntu.com/CommandNotFoundMagic


ใช่นั่นคือสิ่งที่ใคร ๆ ก็คาดหวัง - อย่างไรก็ตามทุบตีนั้นฉลาดกว่าเราและไม่แม้แต่เรียก command_not_found_handle สำหรับไดเรกทอรี :(
Thomas Themel

หลังจากการวิจัยบางอย่างฉันพบแพตช์เล็ก ๆ ( mail-archive.com/bug-bash@gnu.org/msg06761.html ) ที่สามารถแก้ไขได้ น่าเสียดายที่แพทช์นี้ไม่เป็นทางการดังนั้นจึงไม่สามารถใช้กับทุบตีรุ่นที่มากับอูบุนตูได้
Vladimir
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.