ทางลัดใด ๆ สำหรับ“ cd .. ”?


30

มีทางลัดใด ๆcd ..หรือไม่?


47
ใช้เวลานานในการพิมพ์ใช่ไหม
rightfold

17
ใช่มันใช้เวลานานเกินไปสำหรับบางสิ่งที่จำเป็นซึ่งบ่อยครั้ง
maaartinus

2
ลองกดและป๊อป
Zachary Scott

19
ฉันขบขันอย่างมากที่บางคนพบว่าcd ..ยุ่งยากในการพิมพ์
Erik

8
ฉันสงสัยว่าคนที่ต้องการ ' cd ..' มักจะมี "ฉันต้องcdเข้าไปในไดเรกทอรีก่อนพูดคุยเกี่ยวกับไฟล์ที่นั่น" รูปแบบต่อต้านแทนที่จะระบุเส้นทางระบบแฟ้ม
bignose

คำตอบ:


68

ไม่ใช่โดยค่าเริ่มต้น (อาจมีข้อยกเว้นบางประการนี้) ไม่มี แต่ถ้าคุณใช้aliasคำสั่งคุณสามารถสร้างทางลัดเช่นนี้:

alias ..="cd .."

นี้จะช่วยให้คุณสามารถใช้คำสั่งที่จะทำ..cd ..


10
ประณามฉันเพิ่งพิมพ์สิ่งเดียวกันแน่นอน
Majenko

6
ฉันยังใช้alias ...="cd ../.."และอีกสอง alias ,=cd "$OLDPWD"นอกจากนี้ผมสามารถแนะนำ
maaartinus

13
cd -@maaartinus:
Benjamin Bannier

1
@ honk ฉันไม่รู้ อย่างไรก็ตามมันยาวเกินไป (และฉันไม่ต้องการเอาต์พุต)
maaartinus

1
มีคนช่วยอธิบายการโหวตได้ไหม?
Wuffers

82

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

shopt -s autocd

สำหรับคนอยากรู้อยากเห็นมันมีอยู่สำหรับ zsh:

setopt auto_cd

1
นั่นวิเศษมาก ได้เวลาแก้ไข. bashrc ในกล่อง linux ทั้งหมดของฉัน น่าเสียดายที่ดูเหมือนว่ามันจะไม่ทำงานกับ cygwin bash
นักเล่นกล

3
ว้าวเยี่ยมมาก
เรด

5
@gordoco: ใช่มันทุบตี 4.x เท่านั้น เป็นเหตุผลที่ฉันใช้ zsh มา 14 ปีแล้ว
sam hocevar

1
zsh(+ auto_cd) FTW!
Johnsyweb

2
@LaC: ความเหนือกว่าทางเทคนิคไม่ได้เป็นตัวกำหนดความเด่น Bash มีอายุมากกว่าและมีการใช้งานเขียนมากกว่าและในทางปฏิบัติโปรแกรมเมอร์เชลล์ทุกคนรู้ดีกว่าสิ่งอื่นใด การเปลี่ยนแปลงอาจเป็นเรื่องยาก - จากคนที่ไม่ทราบว่าสิ่งที่ทุกเสียง zsh เป็นข้อมูลเกี่ยวกับและมีเพียงการทุบตีจริงๆเคยใช้ :)
tshepang

42

ฉันพบว่ามีประโยชน์นี้:

up() { local p= i=${1:-1}; while (( i-- )); do p+=../; done; cd "$p$2" && pwd; }

ตัวอย่างเช่นup 4=cd ../../../..

เป็นโบนัส, ทำงานในลักษณะที่คล้ายกับ`up 4`/path/to/file../../../../path/to/file


นั่นดูน่าสนใจ! ในปี 2550 ฉันเขียน [function] ที่คล้ายกัน ( home.arcor.de/hirnstrom/minis/index.html#up_X ) สำหรับไฟล์. bashrc ของฉัน โซลูชันของคุณอนุญาตให้ย้อนกลับไปได้ตลอดทางด้วยcd -เช่นกัน ทำได้ดี! :)
ผู้ใช้ที่ไม่รู้จัก

ดี ฉันมีบางอย่างเช่นนี้สำหรับ VMS DCL เมื่อฉันทำเช่นนั้น แต่ไม่ได้คิดเกี่ยวกับมันเมื่อฉันย้ายไปยัง Unix และตัวแปร
GreenMatt

16

หลังจากทำ

bind '"\eu":"cd ..\C-m"'

คุณสามารถโดยการกดcd .. Alt-uฉันเคยใช้สิ่งนี้ในการประชัน chdir ;-)

หากคุณต้องการทั้งชุด chdir อย่างรวดเร็ว

ALT+u cd ..
ALT+n enter next dir for selection
ALT+p enter previous dir for selection
ALT+SPC choose selected dir
ALT+l list subdirectories and highlight selection

เพียงรวมสิ่งนี้ไว้ใน. bashrc ของคุณ

swiftcd-status() {
    echo -n -e "\r\0033[1A\0033[J"
}

swiftcd-contents() {
    find "$swiftcdpath" -maxdepth 1 -executable -type d
}

swiftcd-setdir () 
{ 
    swiftcdpath=$PWD
    swiftcddirnum=1
    swiftcddircount=`swiftcd-contents|wc -l`;
    swiftcd-status
}

swiftcd-pd () 
{ 
    (( --swiftcddirnum <= 0 )) && swiftcddirnum=$swiftcddircount;
    swiftcd-switch $swiftcddirnum
    swiftcd-status
}

swiftcd-updir () 
{ 
    cd ..;
    swiftcd-setdir
}

swiftcd-list () 
{ 
    local redOn="$(echo -e '\0033[31m\0033[1m')"
    local redOff="$(echo -e '\0033[m')"

    swiftcd-status
    ((  swiftcddircount > 1 )) && { 
        echo
        echo $(swiftcd-contents|sed 's!^'"$swiftcdpath"'!!'|sed $swiftcddirnum' s/\(.*\)/'"$redOn"'\1'"$redOff"'/')
    } 
}

swiftcd-nd () 
{ 
    (( ++swiftcddirnum > swiftcddircount )) && swiftcddirnum=1;
    swiftcd-switch $swiftcddirnum
    swiftcd-status
}

swiftcd-switch() {
    (( $1 <= swiftcddircount && $1 > 0 )) && cd $(swiftcd-contents|sed -n $1' p')
}

bind '"\e ":"swiftcd-setdir\C-m"'
bind '"\ep":"swiftcd-pd\C-m"'
bind '"\eu":"swiftcd-updir\C-m"'
bind '"\en":"swiftcd-nd\C-m"'
bind '"\el":"swiftcd-list\C-m"'
swiftcd-setdir

4
แชมป์ chdir คืออะไร? ไม่รู้
Peter Jaric

4
กิจกรรมกีฬาการนำทางของไดเรกทอรี
artistoex

14

ฉันใช้อันนี้เพราะฉันพิมพ์เร็วเกินไปและมักจะพลาด space bar:

alias cd..="cd .."

ไม่สะดวกที่สุดสำหรับคนที่ไม่ได้ใช้ระบบปฏิบัติการยูนิกซ์เป็นครั้งคราวในกล่อง * nix +1
mplungjan

11
s / non-unix/ Windows/
grawity

3
หากคุณกำลังพิมพ์อักขระที่หายไปอย่างรวดเร็วคุณก็เชื่อว่าการเพิ่มชื่อแทนเพื่อcd..ช่วยจริงๆ
Olli

3
ฉันสามารถดูว่ามันจะช่วยถ้าคุณมาจากรักเก่า DOS ที่cd..ถูกต้อง :)
cambraca

1
ด้วยเหตุผลบางอย่างฉันพิมพ์ cd .. มากในสัปดาห์ที่ผ่านมา ฉันคิดว่าฉันจะต้องออกจากกาแฟ แต่ฉันชอบวิธีนี้ดีกว่า
ข้อผิดพลาดของไวยากรณ์

7

ลอง autojump: autojump บน github

สิ่งนี้จะไม่เพียงทำให้คำสั่ง cd สั้นลงใน 'j' แต่ยังย่ออักขระที่จำเป็นสำหรับการพิมพ์โฟลเดอร์ที่คุณต้องการข้ามไป

หากคุณใส่ซีดีลงในโฟลเดอร์ / home / foo / Projects / thenextfacebook คุณสามารถทำ 'j face' ได้แล้ว มันเรียนรู้โดยอัตโนมัติว่าโฟลเดอร์ใดเป็นโฟลเดอร์ที่สำคัญที่สุดสำหรับคุณและหลังจากใช้ไปเป็นเวลาหนึ่งเดือนแล้วฉันสามารถบอกได้ว่ามันถูกต้องมาก




1

ลองCd Deluxeสำหรับคำสั่ง cd ที่ได้รับการปรับปรุงอย่างมาก รองรับสิ่งต่าง ๆ เช่น "cd ... " และ "cd .... " เป็นต้นเพื่อนำทางขึ้นไปอย่างรวดเร็ว

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