แม้ว่าจะมีคำตอบที่ดีอยู่บ้าง แต่ฉันคิดว่าฉันจะพูดถึงความสมบูรณ์แบบของตัวเก่าpushd
และตัวpopd
แบชที่มีให้คุณสามารถย้ายได้อย่างรวดเร็วระหว่างไดเรกทอรีในพา ธ ลึกในระบบไฟล์ของคุณ ตรงกันข้ามกับautojump
บุ๊กมาร์กที่กล่าวถึงโดยburger.gaสแต็กไดเรกทอรีที่สร้างขึ้นโดยใช้pushd
เป็นเพียงชั่วคราว
ในฐานะที่เป็น GNU บันทึกคู่มือ , pushd
และpopd
จะ builtins ทุบตีใช้ในการสร้างสแต็คไดเรกทอรีชั่วคราวที่เป็น
รายการไดเรกทอรีที่เพิ่งเยี่ยมชม pushd builtin เพิ่มไดเร็กทอรีลงในสแต็กเมื่อเปลี่ยนแปลงไดเร็กทอรีปัจจุบันและ popd builtin ลบไดเร็กทอรีที่ระบุออกจากสแต็กและเปลี่ยนไดเร็กทอรีปัจจุบันเป็นไดเร็กทอรีที่ถูกลบทิ้ง dirs builtin แสดงเนื้อหาของไดเรกทอรีสแต็ก
ใช้เวลาทำความคุ้นเคยเล็กน้อย แต่มีตัวอย่างบทเรียนที่เป็นประโยชน์มากมายที่บล็อกนี้และเว็บไซต์นี้เป็นตัวอย่าง ไม่มี manpages แยกต่างหากสำหรับคำสั่งที่เป็นเช่นที่พวกเขาจะรวมอยู่ใน manpage ทุบตี แต่สำหรับการอ้างอิงอย่างรวดเร็วคุณสามารถดูGNU ทุบตีหน้า
คำอธิบายที่ชัดเจนที่สุดอยู่ในบทความที่มีประโยชน์มากนี้และเป็นวิธีที่ฉันใช้pushd
และpopd
:
ประการแรกใช้dirs
หรือdirs -l
เพื่อแสดงรายการไดเรกทอรีในสแต็กและdirs -c
เพื่อล้างสแต็ก
ในแง่ที่คุณคั่นตำแหน่งที่คุณต้องการกลับโดยการป้อน
pushd /home/mike/Pictures/Canon/2012_07_01
และจากนั้นคุณสามารถเพิ่มไดเรกทอรีเพิ่มเติมลงในสแต็กเพื่อให้คุณได้รับรายชื่อ dirs ดังด้านล่างซึ่งรวม 3 โฟลเดอร์ที่กำหนดและโฟลเดอร์หลักของคุณ~
:
dirs
~/Downloads/folder/interest ~/Music/artist/album ~ ~/Pictures/Canon/2012_07_01
จริงๆแล้วคุณไม่จำเป็นต้องใช้popd
ทันทีเนื่องจากมันจะลบไดเรกทอรีออกจากสแต็ก สิ่งที่ดีที่สุดที่ต้องทำคือใช้pushd
เพื่อหมุนสแต็กเพื่อให้คุณสามารถสลับไปมาระหว่างไดเรกทอรีและสั่งซื้อได้ตามที่คุณต้องการ สำหรับข้อมูลเพิ่มเติมเกี่ยวหมุนสแต็คที่มีประโยชน์ดูmanpage ทุบตี
หากคุณมีการจัดเรียงสแต็คตามที่dirs
แสดงรายการข้างต้นให้pushd +3
สลับไปยังโฟลเดอร์รูปภาพและสถานที่ที่อยู่ด้านบนสุดของสแต็ก (เป็น +3 และไม่ใช่ +4 ตามที่คุณไม่ได้นับ~
ในสแต็กไดเรกทอรี):
pushd +3
~/Pictures/Canon/2012_07_01 ~/Downloads/folder/interest ~/Music/artist/album ~
ดังนั้นพรอมต์จะอ่าน
~/Pictures/Canon/2012_07_01$
คุณสามารถทำเช่นนี้ได้โดยไม่ต้องลบมันออกจากสแต็กแม้ว่าโฟลเดอร์ใด ๆ ที่คุณcd
เพิ่มนอกเหนือไปจากโฟลเดอร์ที่เพิ่มไปยังสแต็กไดเรกทอรีpushd
จะเปลี่ยนสแต็กไดเรกทอรีของคุณ
เมื่อคุณจัดเรียงไดเรกทอรีสแต็กตามลำดับที่คุณต้องการคุณสามารถใช้popd
เพื่อวนรอบไดเรกทอรีต่างๆอย่างรวดเร็วจากนั้นกลับสู่โฟลเดอร์หลัก ตัวอย่างเช่นจากPictures
เราสามารถกลับไปที่Downloads
:
popd
~/Downloads/folder/interest ~/Music/artist/album ~
และการอ่านที่รวดเร็ว
~/Downloads/folder/interest$
โดยทั่วไปความสวยงามของสิ่งนี้คือคุณสามารถตั้งค่าไดเรกทอรีสแต็คและลำดับของรายการภายในด้วยpushd
และจากนั้นสมมติว่าคุณมีสามไฟล์ที่จะแก้ไขในแต่ละไดเรกทอรีเหล่านั้นคุณสามารถกลับไปที่แต่ละรายการได้ทันทีpopd
ในขณะที่ลบ จากไดเรกทอรีสแต็ก แล้วกับครั้งสุดท้ายของคุณคุณจะกลับไปpopd
~
มันจะมีประโยชน์อย่างยิ่งเมื่อคุณมีไดเร็กทอรีที่มีความลึกเป็นพิเศษและสามารถใช้เพื่อตั้งค่าไดเรกทอรีสแต็กเพื่อย้ายระหว่างไดเรกทอรีเหล่านั้นได้อย่างรวดเร็ว
นอกจากนี้คำถามนี้มีเคล็ดลับที่คุณอาจพบว่ามีประโยชน์เมื่อทำงานกับบรรทัดคำสั่ง: