คำถามติดแท็ก cd-command

cd เป็นเชลล์ในตัวเพื่อเปลี่ยนไดเรกทอรีทำงาน

4
นามแฝงในแผ่นซีดีในไดเรกทอรีและเรียกคำสั่ง
ฉันมี.bash_profileและในที่ฉันมีชุดของนามแฝง นามแฝงเหล่านั้นในขณะนี้ดำเนินการเพียงคำสั่งเดียวและมันค่อนข้างง่าย อย่างไรก็ตามฉันต้องการทำสองสิ่งด้วยนามแฝงใหม่ที่ฉันพยายามสร้าง ซีดีลงในไดเรกทอรี เรียกใช้คำสั่งจากไดเรกทอรีนั้น
21 bash  alias  cd-command 

3
เมื่อฉัน cd ผ่าน symlink ทำไม pwd แสดง symlink แทนที่จะเป็นเส้นทางจริง
ฉันสร้างการเชื่อมโยงนุ่ม ( ln -s 1 2) ไปยังไดเรกทอรีที่อยู่ภายในที่testไดเรกทอรีและเปิดการเชื่อมโยงนุ่ม ( cd 2) pwdและแสดงเส้นทางปัจจุบันใช้ เส้นทางที่แสดงเป็นและไม่ได้~/test/2~/test/1 มันแตกต่างกันใน OS เช่น Windows ทางลัดนำเราไปสู่ไดเรกทอรีจริง ฉันสับสนเล็กน้อยว่าซอฟต์ลิงค์นี้ทำงานอย่างไรใน Linux มันไม่ใช่ทางลัดWindowsใช่มั้ย เป็นเส้นทางที่ทำไมไม่~/test/1? $ mkdir test $ cd test $ mkdir 1 $ ln -s 1 2 $ cd 2 $ pwd /home/dazz/test/2

7
เหตุใดฉันจึงต้องทำซีดีออกจากไดเรกทอรีที่ถูกลบ
บนเซิร์ฟเวอร์ของฉันฉันมีโครงสร้างไดเรกทอรีที่มีลักษณะดังนี้: /myproject/code ปกติฉันจะมีการเชื่อมต่อ ssh ไปยังเซิร์ฟเวอร์และ 'ยืน' ในไดเรกทอรีนั้น: root@machine:/myproject/code# เมื่อฉันปรับใช้รหัสรุ่นใหม่ของฉันไดเรกทอรีรหัสจะถูกลบออกดังนั้นฉันจึงเหลือ: root@machine:/myproject/code# ./run -bash: ./run: No such file or directory และทางออกเดียวที่ฉันพบคือ cd out and back in: root@machine:/myproject/code# cd ../code root@machine:/myproject/code# ./run Running... ฉันจะหลีกเลี่ยงสิ่งนี้ได้หรือไม่? มันเป็นพฤติกรรมที่ค่อนข้างแปลก หากคุณมีคำอธิบายที่ดีว่าทำไมสิ่งนี้เกิดขึ้นฉันจะขอบคุณมัน

6
เทียบเท่านามแฝงสำหรับลิงก์สัญลักษณ์?
ฉันพบว่าตัวเองต้องการข้ามไดเรกทอรีบางอย่างในโฟลเดอร์บ้านของฉันบ่อยและเบื่อเขียน ฉันต้องการวิธีที่รวดเร็วกว่าซึ่งเป็นลิงก์แบบดั้งเดิม อย่างไรก็ตามฉันไม่ต้องการที่จะทำให้ไดเรกทอรีบ้านของฉันยุ่งเหยิงด้วยลิงค์สัญลักษณ์มากมาย ฉันจะสร้างบาง~/links/ไดเรกทอรีและถ่วงมันมีการเชื่อมโยงสัญลักษณ์ แต่ก็ยังคงเป็นที่น่าเกลียด นอกจากนี้ฉันอาจต้องการสร้างลิงก์สัญลักษณ์ซึ่งเปลี่ยนแปลงในแต่ละวัน (กำหนดใน. bashrc) เพื่อข้ามไปยังไดเรกทอรีวันปัจจุบัน มีวิธีในการนามแฝงลิงก์สัญลักษณ์อย่างมีประสิทธิภาพหรือไม่สร้างสิ่งที่จะได้รับการยอมรับว่าเป็นลิงก์สำหรับการนำทางอย่างรวดเร็ว แต่จะไม่ปรากฏขึ้นจริงเมื่อฉันทำlsโฮมไดเรกทอรีของฉันและจะไม่เกินเซสชันปัจจุบันหรือไม่

2
ความแตกต่างระหว่างคำสั่ง builtin cd และ cd คืออะไร?
builtin cdผมพบคำสั่งลินุกซ์ ความแตกต่างระหว่างคำสั่งbuiltin cdและcdคืออะไร? ที่จริงแล้วฉันได้ทำการวิจัยเกี่ยวกับความแตกต่าง แต่ฉันไม่สามารถหาคำอธิบายที่น่าทึ่งและมีนัยสำคัญเกี่ยวกับเรื่องนี้
17 bash  shell  cd-command 

1
มันเป็นพฤติกรรมมาตรฐานสำหรับซีดีที่จะเลือกโดยอัตโนมัติเมื่อได้รับชื่อไดเรกทอรีที่ไม่สมบูรณ์?
ฉันมีสามโฟลเดอร์ที่เรียกว่าProjectA, และProjectB ProjectCเมื่อฉันtabสมบูรณ์cdไปcd ProjectและกดมันเลือกEnter ProjectCฉันพบว่านี่เป็นกรณีที่มีกรณีอื่นที่คล้ายคลึงกัน; มันเริ่มต้นที่ล่าสุดในการสั่งซื้อพจนานุกรม (แต่นี่ก็อาจมีการเปลี่ยนแปลง / เพิ่มล่าสุด) นี่เป็นพฤติกรรมเริ่มต้นที่คาดไว้สำหรับcdหรือฉันตั้งบางสิ่งบางอย่างโดยบังเอิญ ฉันใช้ OSX 10.10.3 กับทุบตี 4.3

2
เปลี่ยนไดเรกทอรีโดยไม่ต้องพิมพ์ cd?
มันเป็นไปได้ที่จะทำให้การเปลี่ยนไดเรกทอรีทุบตีในบรรทัดคำสั่งง่ายๆโดยพิมพ์ไดเรกทอรีว่าไม่มีคำสั่งใด ๆ เช่นcd? ตัวอย่างเช่นเป็นไปได้แทนที่จะเขียนสิ่งนี้: $ cd /tmp ฉันแค่อยากจะเขียนสิ่งนี้เท่านั้น: $ /tmp กล่าวอีกนัยหนึ่งถ้าฉันเรียกไดเรกทอรีเป็นแอปพลิเคชันแล้วฉันต้องการตั้งค่าไดเรกทอรีนั้นเป็นไดเรกทอรีที่ใช้งานได้

1
pushd, popd vs cd, cd- in bash และ zsh
มีความแตกต่างระหว่างพฤติกรรมของ pushd / popd ใน bash vs zsh หรือไม่? ดูเหมือนว่าใน zsh cd, cd- ทำงานเหมือนกับ pushd / popd (ซึ่งจะเพิ่ม / pops directory โดยอัตโนมัติเมื่อ cd) ในขณะที่ bash cd ไม่มีผลต่อ dir stack หากใครบางคนสามารถให้ฉันตัวชี้ที่จะดี
16 bash  zsh  cd-command  pushd 

3
ทำไมชื่อโฟลเดอร์ของฉันถึงจบลงเช่นนี้และฉันจะแก้ไขได้อย่างไรโดยใช้สคริปต์
ขออภัยถ้านี่มีคำตอบที่อื่นฉันไม่ทราบวิธีค้นหาปัญหาของฉัน ฉันใช้การจำลองบางอย่างบนเซิร์ฟเวอร์ linux HPC redhat และรหัสของฉันสำหรับการจัดการโครงสร้างโฟลเดอร์เพื่อบันทึกผลลัพธ์มีข้อผิดพลาดที่โชคร้าย รหัส matlab ของฉันเพื่อสร้างโฟลเดอร์คือ: folder = [sp.saveLocation, 'run_', sp.run_number, '/']; ที่sp.run_numberเป็นจำนวนเต็ม ฉันลืมแปลงเป็นสตริง แต่ด้วยเหตุผลบางอย่างที่ทำงานmkdir(folder);(ใน matlab) ยังคงประสบความสำเร็จ ในความเป็นจริงการจำลองวิ่งโดยไม่มีการผูกปมและข้อมูลถูกบันทึกลงในไดเรกทอรีที่ตรงกัน ตอนนี้เมื่อโครงสร้างโฟลเดอร์ถูกสอบถาม / พิมพ์ฉันได้รับสถานการณ์ต่อไปนี้: เมื่อฉันพยายามแท็บเติมข้อความอัตโนมัติ: run_ run_^A/ run_^B/ run_^C/ run_^D/ run_^E/ run_^F/ run_^G/ run_^H/ run_^I/ เมื่อฉันใช้ls: run_ run_? run_? run_? run_? run_? run_? run_? run_? run_? run_?. เมื่อฉันถ่ายโอนไปยัง mac ของฉันโดยใช้ …

3
วิธีรันหนึ่งคำสั่งที่มีไดเรกทอรีเป็นอาร์กิวเมนต์แล้ว cd ไปเหมือนกัน? ฉันได้รับ“ ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว”
ฉันต้องการสร้างฟังก์ชั่นสั้น ๆ เพื่อทำสิ่งต่อไปนี้ สมมติว่าฉันย้ายไฟล์ 'file.tex' ไปยังไดเรกทอรีเอกสารของฉัน: mv file.tex ~/Documents จากนั้นฉันต้องการไปcdยังไดเรกทอรีนั้น: cd ~/Documents ฉันต้องการที่จะพูดคุยนี้ไปยังไดเรกทอรีใด ๆ เพื่อให้ฉันสามารถทำได้: mv file.tex ~/Documents follow และให้followคำสั่งอ่านปลายทางจากคำสั่งก่อนหน้าจากนั้นดำเนินการตามนั้น สำหรับไดเรกทอรีง่าย ๆ มันไม่ได้ประหยัดเวลามาก แต่เมื่อทำงานกับไดเรกทอรีที่ซ้อนกันมันจะยิ่งใหญ่มากที่จะสามารถใช้ mv file.tex ~/Documents/folder1/subfolder1 follow ฉันคิดว่ามันค่อนข้างง่ายและฉันสามารถทำสิ่งนี้: follow() { place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev` cd $place } …
15 bash  cd-command 

4
ลิงก์สัญลักษณ์ไปยังไดเร็กทอรีและพา ธ สัมพัทธ์
ฉันได้สร้าง symlink ด้วยเส้นทางที่แน่นอนไปยังไดเรกทอรี (กะพริบ) และมีตัวอย่างดังต่อไปนี้ต้นไม้: $ ls -l /tmp/A total 0 lrwxrwxrwx 1 root root 6 Apr 3 12:27 Blink -> /tmp/B -rw-r--r-- 1 root root 0 Apr 3 12:27 foo $ ls -l /tmp/B total 0 -rw-r--r-- 1 root root 0 Apr 3 12:27 bar จากนั้นฉันไปที่ / tmp / …

1
dot dot (.. ) คืออะไร? ทำไมพฤติกรรมของมันจึงแตกต่างจาก symlink?
ฉันพยายามที่จะเข้าใจธรรมชาติของ..(สองจุด) ดูเหมือนว่าจะชี้ไปยังเป้าหมายที่แตกต่างกันขึ้นอยู่กับว่าคุณเข้าถึงมันอย่างไร ตัวอย่าง:- /outer/ middle/ inner/ inner --> ./middle/inner/ ตอนนี้/outer/middle/inner/..นำไปสู่การ/outer/middle/แต่ถ้าฉันเข้าถึงได้ผ่านการเชื่อมโยงสัญลักษณ์นำไปสู่/outer/inner/.. /outer/ดูเหมือนว่ามีสองที่แตกต่างกัน..ที่นี่ อะไร..กันแน่ ลิงก์สัญลักษณ์? ลิงค์ยาก? หรือมันสร้างแบบไดนามิกขึ้นอยู่กับเส้นทางเมื่อเข้าถึงไดเรกทอรีหรือไม่ หรือบางทีความเข้าใจของฉันเกี่ยวกับลิงก์สัญลักษณ์นั้นไม่ถูกต้อง แก้ไข: การสังเกตอื่น ๆ ที่เกี่ยวข้อง /outer/ middle/ file inner/ f --> ./../file inner --> ./middle/inner/ ตอนนี้ถ้าฉันพยายามเข้าถึงไฟล์ผ่าน/outer/inner/fมันใช้งานได้ แต่มันไม่ควรเนื่องจาก/outer/inner/../fileไม่ได้ชี้ไปที่ไฟล์ /outer/middle/inner/..ไฟล์ที่อยู่ใน สิ่งนี้ดูเหมือนจะขัดแย้งกับพฤติกรรมข้างต้น!

1
แสดงข้อความเมื่อ cd ลงในไดเรกทอรีเฉพาะ
ฉันจะแสดงข้อความเมื่อฉันcdไปยังไดเรกทอรีที่ต้องการได้อย่างไร ไดเรกทอรีนี้เป็นไดเรกทอรีท้องถิ่นและฉันต้องการการแจ้งเตือนเมื่อฉันเข้าไปในเทอร์มินัล
15 shell  cd-command 

1
พฤติกรรมที่แตกต่างกันของ cd ที่มีหลายอาร์กิวเมนต์ใน bash release
โพสต์ไว้ที่นี่สิ่งที่ทำให้ฉันงงงวย; การอัพเกรดแอปพลิเคชันเซิร์ฟเวอร์จาก Jessie เป็น Stretch ทำให้bashสคริปต์เสียหาย เมื่อทำการตรวจสอบเราได้ จำกัด ให้เป็นการเปลี่ยนแปลงพฤติกรรมของcdคำสั่ง ฉันไม่ได้พูดถึงที่นี่หากสิ่งที่สคริปต์กำลังทำอยู่เป็นความคิดที่ดีหรือหากสามารถปรับปรุงได้ เจสซี $echo *-* xxxx-1.0b xxxx-run $cd *-* cd ทำงานและซีดีไปยังไดเรกทอรีแรก; จริงๆแล้ว * -run เป็นลิงค์สัญลักษณ์ไปยังไดเรกทอรีเดียวกัน ยืด $echo *-* xxxx-1.0b xxxx-run $cd *-* bash: cd: too many arguments bash คือ 4.3.30 (1) ใน Jessie และ 4.4.12 (1) ใน Stretch ทำไมการเปลี่ยนแปลงพฤติกรรมระหว่างเจสซีกับยืด?
14 bash  cd-command 

6
ทำไม“ ls” จึงต้องการกระบวนการแยกต่างหากสำหรับการดำเนินการ
เหตุใดจึงlsต้องมีกระบวนการแยกต่างหากสำหรับการดำเนินการ ฉันรู้ว่าสาเหตุที่คำสั่งเช่นcdไม่สามารถดำเนินการได้โดยกลไกการฟอร์กกิ้ง แต่มีอันตรายใด ๆ หากlsถูกสั่งการโดยไม่ฟอร์กกิ้ง?
14 ls  cd-command  fork 

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