ในเทอร์มินัลฉันจะกำหนดคีย์เพื่อไปยังไดเรกทอรีก่อนหน้าซึ่งฉันอยู่เมื่อเปลี่ยนไดเรกทอรีด้วยcdคำสั่งได้อย่างไร
ตัวอย่างเช่น/opt/soft/binฉันcdเข้า/etc/squid3และเข้าและฉันต้องการกลับไปที่ไดเรกทอรีแรก
ในเทอร์มินัลฉันจะกำหนดคีย์เพื่อไปยังไดเรกทอรีก่อนหน้าซึ่งฉันอยู่เมื่อเปลี่ยนไดเรกทอรีด้วยcdคำสั่งได้อย่างไร
ตัวอย่างเช่น/opt/soft/binฉันcdเข้า/etc/squid3และเข้าและฉันต้องการกลับไปที่ไดเรกทอรีแรก
คำตอบ:
คุณสามารถใช้ได้
cd -
หรือคุณสามารถใช้
cd $OLDPWD
cd -น่าจะเป็นตั้งแต่เปลือกหอยเก่าไม่แสดงชื่อของไดเรกทอรีปัจจุบันในพรอมต์มันเป็นประโยชน์ที่จะเห็นชื่อของไดเรกทอรีเมื่อคุณพิมพ์ ตัวอย่างเช่นเมื่อคุณพิมพ์cd /usr/localคุณรู้ว่าคุณอยู่/usr/loalแต่เมื่อคุณพิมพ์cd -คุณจำไม่ได้เสมอว่าคุณมาจากไดเรกทอรีใด cd -; pwdดังนั้นจึงช่วยให้คุณประหยัดจากการพิมพ์ แต่นี่คือการเก็งกำไรทั้งหมด
alias -- -='cd -'แล้วใช้-(1 อักขระ) แทนcd -(4 อักขระ) เร็วขึ้น:D
cd -สองครั้ง อย่าคุณควรจะอยู่ในcd /; cd /usr; cd -; cd - /usrแต่บางทีฉันอาจจะเข้าใจคำถามของคุณ
คำตอบอื่น ๆ จะเสร็จสมบูรณ์แน่นอนในความหมายคำตอบโดยตรง cd -และcd $OLDPWDเป็นตัวเลือกหลักสำหรับสิ่งนี้อย่างแน่นอน อย่างไรก็ตามฉันมักพบว่าการเข้าสู่เวิร์กโฟลว์ด้วยpushdและpopdทำงานได้ดีขึ้น
เรื่องยาวสั้นถ้าคุณกำลังจะย้ายไปลงในไดเรกทอรีด้วยความตั้งใจที่ดีที่สุดของกลับมาที่คุณเริ่มต้นการใช้งาน/pushdpopd
ความแตกต่างที่สำคัญแสดงได้อย่างง่ายดายโดยตัวอย่าง
$ cd dir1
$ pushd dir2
ณ dir2, dir1จุดนี้คุณมีกองไดเรกทอรีที่ เล่นpushdกับการขัดแย้งใดจะทำให้คุณกลับมาอยู่ในกับสแต็คในขณะนี้ dir1 จะทำเช่นเดียวกัน แต่จะทำให้คุณมีสแต็กไดเรกทอรีว่างเปล่า สิ่งนี้ไม่แตกต่างไปจากที่คุณเคยทำงานกับเวิร์กโฟลว์มากนักdir1, dir2popdcd -
dir1แต่ตอนนี้คุณสามารถเปลี่ยนไดเรกทอรีหลายครั้งและได้รับกลับไป ตัวอย่างเช่น,
$ cd dir1
$ pushd dir2
$ cd dir3
หากคุณทำงานpopdณ dir1จุดนี้คุณจะกลับไป
pushdและกลับไปยังโฟลเดอร์ก่อนหน้าในขณะที่popdออก
dirs -vแต่ความจริงสำหรับฉันก็คือบ่อยครั้งที่กรณีง่าย ๆ คือทั้งหมดที่ฉันใช้จริง ๆ (หรือแย่กว่านั้นคือฉันทำผิดพลาดเมื่อพยายามpush +2หรือคล้ายกัน) นอกจากนี้ฉันคิดว่าขั้นตอนที่รักสำหรับการรับคนที่จะลองเวิร์กโฟลว์ :)
cdจะไปที่ด้านบนสุดของสแต็คโดยไม่ต้อง popping ได้อย่างไร
คุณควรใช้:
cd ~-
มันไม่เป็นเช่นเดียวกับcd -(จากคำตอบที่ได้รับการยอมรับในปัจจุบัน) โดยไม่ได้รับเสียงสะท้อนที่น่ารำคาญของไดเรกทอรีและง่ายต่อการพิมพ์กว่าหรือcd "$OLDPWD"cd - > /dev/null
alias -- -='cd "$OLDPWD"'ใช้-(1 อักขระ) แทนcd ~-(5 อักขระ) :)
cd ~-/..งานได้ แต่cd -/..ไม่!
$ cd -
จะเปลี่ยนเป็นไดเรกทอรีการทำงานก่อนหน้า
คุณสามารถ "กำหนดคีย์" สำหรับ 'cd -' โดยแก้ไขไฟล์ '~ / .bashrc' ของคุณและรวมถึงนามแฝงสำหรับคำสั่ง ตัวอย่างเช่นคุณสามารถเพิ่ม 'cdc' เพื่อให้ 'cd -' ซึ่งจะช่วยให้คุณมีวิธีที่สั้นกว่าในการไปยังไดเรกทอรีสุดท้ายโดยการเพิ่ม:
alias cdc='cd -'
วิธีนี้คุณเพียงแค่พิมพ์ 'cdc' และจะทำให้คุณอยู่ในไดเรกทอรีการทำงานล่าสุดของคุณ
bind '"\e[24~":"\C-k \C-ucd -\n"'(หรือให้เลื่อนไปที่inputrcไฟล์ตามที่ระบุไว้ในคำตอบ)
cd ..ไปที่โฟลเดอร์ก่อนหน้าในแผนผังของโฟลเดอร์
cd -ไปที่โฟลเดอร์ที่เคยเป็น คำสั่งนี้ใช้ไม่ได้กับ distros บางรุ่น (Ubuntu 16.04) ใช้งานได้ใน debian 9