'cd -' ย่อมาจากอะไร?


95

ใน bash shell script วันนี้ฉันสังเกตเห็นคำสั่งด้านล่างที่ส่วนท้ายของสคริปต์ ฉันรู้ว่าอะไรคืออะไรcdแต่ฉันไม่รู้ถึงความสำคัญของเส้นประหลังมัน

cd -

สิ่งนี้หมายความว่า? Google ตัดทอนอย่างไร้เดียงสา-ดังนั้นฉันจึงไม่สามารถหาคำตอบได้


@nm ไม่มีman cdในเครื่องของฉัน FYI
Dan Fego

พยายามแล้ว มันจะส่งคืน cd-rom คอมแพคดิสก์ ฯลฯ
AppleGrew

2
คุณอาจต้องการดูpushdและpopdคำสั่ง ฉันไม่สามารถอยู่ได้โดยปราศจากพวกเขา
Brett Hale

2
@nm - cdไม่ใช่ไบนารีภายนอก แต่เป็นคำสั่งที่มีอยู่ภายในเชลล์ man bashเปรย
jordanm

ฉันมีman cdในระบบของฉัน (Gentoo) มันพูดว่า: This manual page is part of the POSIX Programmer's Manualฯลฯ เป็นต้นหากคุณจะหายไปคุณสามารถ man cdgoogle
. 'สรรพนาม' ม.

คำตอบ:


128

หากระบุขีดเดียวเป็นอาร์กิวเมนต์จะถูกแทนที่ด้วยค่าของOLDPWD.

OLDPWDถูกกำหนดโดยcdคำสั่งและมันก็เป็นไดเรกทอรีการทำงานก่อนหน้านี้


2
ขอบคุณ. สิ่งนี้สั้นและจากมุมมองของโปรแกรมเมอร์เสร็จสมบูรณ์
AppleGrew

จะเกิดอะไรขึ้นถ้าเราระบุ-เป็นไฟล์
viveksinghggits

@viveksinghggits คุณสามารถใช้cd ./-หรือเพื่อลบคุณสามารถหลบหนีได้ด้วยrm -fr -- -
Sandro Munda

20

cd - กลับไปที่ไดเร็กทอรีที่คุณเคยอยู่

ตัวอย่างเช่น:

marcelo @ marcelo: ~ $ cd / opt
marcelo @ marcelo: / opt $ cd / usr / bin
marcelo @ marcelo: / usr / bin $ cd -
/เลือก
marcelo @ marcelo: / opt $ 

ฉันอยู่ใน / opt เปลี่ยนเป็น / usr / bin จากนั้นกลับไปที่ / opt ด้วย cd -


10

cd - นำคุณกลับไปที่ไดเร็กทอรีสุดท้าย

$ cd ~/Desktop
$ pwd
/Users/daknok/Desktop
$ cd /
$ pwd
/
$ cd -
$ pwd
/Users/daknok/Desktop

6

cd - กลับไปที่ไดเร็กทอรีก่อนหน้านี้ที่คุณอยู่

บอกว่าฉันเข้า/usr/และฉันพิมพ์cd /var/local/someplace/else

จากนั้นฉันcd -จะกลับไปใช้/usr


6

จากคู่มือ

อาร์กิวเมนต์ของ - เทียบเท่ากับ $ OLDPWD หากใช้ชื่อไดเร็กทอรีที่ไม่ว่างจาก CDPATH หรือ if - เป็นอาร์กิวเมนต์แรกและการเปลี่ยนแปลงไดเร็กทอรีสำเร็จชื่อพา ธ สัมบูรณ์ของไดเร็กทอรีการทำงานใหม่จะถูกเขียนไปยังเอาต์พุตมาตรฐาน ค่าที่ส่งคืนเป็นจริงถ้าเปลี่ยนไดเร็กทอรีสำเร็จ เท็จเป็นอย่างอื่น

ดังนั้นจึง-เทียบเท่ากับ$OLDPWDซึ่งเก็บไดเร็กทอรีสุดท้ายที่เชลล์อยู่และถูกกำหนดโดยการcdเรียกใช้ก่อนหน้านี้



2

cd - นำคุณกลับไปที่ไดเร็กทอรีสุดท้ายที่คุณเคยเป็น เช่น

cd ~/Documents
cd ~
cd /

ตอนนี้คุณอยู่ใน '/' และถ้าคุณเรียกใช้ 'cd -' คุณจะอยู่ใน '~' BTW เรียกใช้ 'cd -' อีกครั้งคุณจะกลับไปที่ '/' แต่ไม่ใช่ '~ / Documents'


-1

“ ไดเรกทอรีปัจจุบัน” คือความหมายของคำสั่ง bash cd terminal หมายความว่า“ ให้ฉันอยู่ในไดเรกทอรีนี้”


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