ฉันสามารถเพิ่มทางลัดเพื่อแทนที่เส้นทางใน Linux ได้หรือไม่


33

ตัวอย่างเช่นฉันไปที่เส้นทางนี้เสมอ:

/ ผู้ใช้ / บางสิ่งบางอย่าง / somefolders / ที่ไหนสักแห่ง

แต่ฉันไม่ต้องการพิมพ์

cd / user / something / somefolders / ที่ไหนสักแห่ง

ในอาคารผู้โดยสารตลอดเวลาฉันมีมือสั้น ๆ บ้างไหมที่จะทำเช่นนั้น? ตัวอย่างเช่นฉันสามารถทำอะไรเช่น

cd commandPlace

เพื่อแทนที่เส้นทาง?

คำตอบ:


32

คุณสามารถใช้ตัวแปรสภาพแวดล้อมCDPATHสำหรับสิ่งนี้ จากหน้า Bash man:

CDPATH

พา ธ การค้นหาสำหรับคำสั่ง cd นี่เป็นรายการไดเร็กทอรีที่คั่นด้วยโคลอนซึ่งเชลล์ค้นหาไดเร็กทอรีปลายทางที่ระบุโดยคำสั่ง cd ค่าตัวอย่างคือ ".: ~: / usr"

ในกรณีของคุณคุณสามารถตั้งค่า

export CDPATH=.:/user/something/somefolders

ใน~/.bashrcแล้วพิมพ์cd somewhereจะนำคุณไป/user/something/somefolders/somewhere(สมมติว่าไม่มีชื่อไดเรกทอรีsomewhereในไดเรกทอรีปัจจุบัน)

อีกทางเลือกหนึ่งถ้าคุณไม่ต้องการอ้างถึงโฟลเดอร์somewhereด้วยชื่อจริงคุณสามารถสร้างไดเรกทอรีที่ซ่อนอยู่ซึ่งมีลิงค์สัญลักษณ์ที่/user/something/somefolders/somewhereมีชื่อที่คุณต้องการใช้ นอกจากนี้ยังอาจมีลิงค์ไปยังไดเรกทอรีอื่น ๆ ที่คุณเยี่ยมชมเป็นประจำ จากนั้นตั้งค่าCDPATHให้รวมเส้นทางไปยังไดเรกทอรีที่ซ่อนอยู่ แม้ว่าจะทราบด้วยวิธีนี้ถ้าคุณcd somewhereและcd ..คุณจะจบลงในไดเรกทอรีที่ซ่อนอยู่ นั่นอาจจะใช่หรือไม่ใช่ประเด็นสำหรับคุณ


41

ปุ่มลัดสองปุ่มที่ฉันใช้ตลอดเวลาสำหรับสิ่งต่าง ๆ เช่นนี้:

นามแฝง

alias somedir = 'cd / home / john / www / something /'

จากนั้นคุณสามารถพิมพ์somedirเพื่อไปยังไดเรกทอรีนั้น .bashrcเพิ่มเหล่านี้เพื่อคุณ

ลิงก์สัญลักษณ์

ln -s / long / path / to / some / other / folder / ลัด

นี้จะทำให้ไฟล์ที่ซึ่งเชื่อมโยงไปยัง/shortcut /long/path/to/some/other/folderจากนั้นคุณสามารถพิมพ์ cd /shortcutแทน ข้อแม้ของมันคือการเติมไดเรกทอรีรากของคุณ (หรือไดเรกทอรีใดก็ตามที่คุณใส่ลิงค์) ค่อนข้างเร็ว ฉันชอบนามแฝง


เป็นคนที่ดีจอห์น!
Gob00st

มันควรจะเป็นln -s /long/path/to/some/other/folder /shortcutเมื่อฉันทำมันด้วยวิธีอื่นมันสร้างทางลัดในสถานที่ที่ฉันต้องการสร้างลิงก์ไป ฉันส่งการแก้ไขเพื่ออัปเดต
อีเลียส

1
วิธีการเกี่ยวกับไดเรกทอรีในรากที่มีชื่อสั้น ๆ เช่น/slและสร้างทางลัดในนั้น? (กล่าวคือln -s /long/path/to/some/other/folder /sl/shortcutไม่มีความยุ่งเหยิงในรูทรวมถึงการเตือนความจำด้วยภาพว่าเส้นทางของพรอมต์ของคุณนั้นเป็น symlink
RolfBly

14

ฉันมักจะใช้การค้นหาแบบโต้ตอบ bash ตลอดเวลา ลองมัน. เรียกมันด้วยCtrl + Rและเริ่มพิมพ์ส่วนหนึ่งของเส้นทางของคุณอย่างเช่นที่ใดที่หนึ่ง อาจเป็นคำสั่ง cd ของคุณจะปรากฏขึ้น :)


9

ดูที่คำสั่ง "นามแฝง"

ใน csh:

alias commandplace "cd /user/something/somefolders/somewhere"

ใน SH:

alias commandplace="cd /user/something/somefolders/somewhere"

แต่ฉันชอบโซลูชัน symlink:

ln -s /user/something/somefolders/somewhere ~/commandplace 

หมายเหตุ: ln รับอาร์กิวเมนต์ในลำดับเดียวกันกับ cp


9

อีกสิ่งหนึ่งที่คุณสามารถทำได้คือเก็บเส้นทางที่เป็นปัญหาในตัวแปรสภาพแวดล้อม เพิ่มบรรทัดเหล่านี้ใน~/.profileไฟล์ของคุณ:

somedir=/user/something/somefolders/somewhere
export somedir

จากนั้นคุณสามารถเข้าถึงไดเรกทอรีด้วย

cd "$somedir"

1
นี่คือทางออกที่ดีที่สุด imo เพราะคุณสามารถใช้ตัวแปรสำหรับคำสั่งใด ๆ หากคุณกำหนดนามแฝงแล้วนามแฝงนั้นจะเชื่อมโยงกับคำสั่งอย่าง cd เสมอ ...
BdN3504

นี่คือทางออกที่ฉันหวังว่าจะมีอยู่และกำลังมองหา ด้วยเหตุผล BdN3504 ได้ระบุไว้
แรงบันดาลใจ

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