คำสั่ง Linux cd ..


9

พูดถ้าฉันต้องทำสิ่งนี้มาก:

cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/

มีวิธีใดที่เร็วกว่าที่จะไม่พิมพ์../../../../บ่อยครั้งหรือไม่ ความคิดสร้างสรรค์ใด ๆ


2
ทำไมไม่เพียงแค่ดำเนินการcd ../../../..และทำมันด้วย?
Red Cricket

8
คุณอาจจะสนุกpushdและหรือแม้กระทั่งpopd cd -
jscott

1
หากคุณไปไกลขนาดนั้นมันอาจทำให้รู้สึกว่าแค่ cd / จริง / path / you / ต้องการขึ้นอยู่กับว่าโฟลเดอร์ไปลึกแค่ไหน
Drew Khoury

นี่เป็นความพยายามมากกว่าที่ควรค่า หากคุณกำลังย้ายระหว่างไดเรกทอรีข้อมูลจำเพาะของพา ธ แบบเต็มหรือเพียงแค่ใช้cd -( เพื่อไปยังไดเรกทอรีสุดท้าย ) นั้นง่ายกว่า ปกติแล้วalias h="history|grep"ฉันจะสามารถใช้ทางลัดเข้าประวัติแทน สิ่งที่ชอบh foo3ตามด้วย!450การทำซ้ำคำสั่งนั้น
ewwhite

เปิดหน้าต่างเทอร์มินัลอื่นและอย่าพิมพ์ cd ../../../ .. เลย
แมตต์

คำตอบ:


18

วิธีคลาสสิคในการทำเช่นนี้คือการตั้งค่าCDPATHตัวแปร ในกรณีของคุณมันอาจถูกตั้งค่าเป็น.:../../../../หรือ.:/path/to/the/parent/of/fooเพื่อให้บรรลุผลที่ต้องการ จากนั้นคุณสามารถทำได้cd foo/sub1/bar/destและไปยังที่ที่คุณต้องการ

ข้อดีของการทำเช่นนี้คือการทำให้แท็บเสร็จสมบูรณ์เพื่อcdดู$CDPATHและใช้งานได้อย่างน่าอัศจรรย์


9

คุณสามารถใช้autojumpซึ่งเรียนรู้โดยอัตโนมัติจากคำสั่ง cd ก่อนหน้านี้และคุณจะต้องระบุสตริงที่ไม่ซ้ำจากเส้นทางแบบเต็มในครั้งต่อไป อดีต j foo, j foo1, j foo2


7

คุณสามารถสร้างทางลัดสำหรับคำสั่งเหล่านี้โดยเพิ่มนามแฝงลงในไฟล์กำหนดค่า bash (~ / .bashrc หรือ /etc/bash.bashrc)

alias cdd="cd ../../../../"

จากนั้นเมื่อคุณพิมพ์cddมันจะรันคำสั่งนั้น


3
ใช่หรือfunction cdd () { cd ../../../../$1/bar/dest ; }ดังนั้นแล้วคุณก็สามารถพิมพ์เช่น,cdd foo cdd foo2
Andrew Schulman

0

ฉันเพิ่งเจอhttps://github.com/rupa/zซึ่งช่วยให้คุณข้ามไปยังไดเรกทอรีที่ใช้ล่าสุดโดย regex ดังนั้นคุณสามารถทำสิ่งที่ชอบ:

z foo3.*dest

แทน:

cd ../../../../foo3/sub1/bar/dest/

(ตราบใดที่คุณเคยเยี่ยมชมไดเรกทอรีนั้นมาก่อนและไม่มีอะไรที่ตรงกับความนิยมล่าสุด / บ่อยครั้งที่ใช้ regex)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.