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

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

3
~ คือ $ HOME แต่บางครั้ง
cd ~ ทำสิ่งเดียวกัน cd $HOME ซึ่งก็เหมือนกัน cd /home/tandu อย่างไรก็ตาม cd ~not-tandu เปลี่ยนเป็น /home/not-tandu นี่เป็นทางเลือกทางประโยคอย่างแท้จริงหรือไม่? สิ่งนี้ถูกจัดการโดยเคอร์เนล (หรือที่cdเรียกทำงานได้หรือไม่) มีกรณีพิเศษสำหรับ~เพิ่มเครื่องหมายทับหรือไม่ถ้าทุกอย่างถูกละเว้น? กล่าวคือ~/และ~เปลี่ยนเป็นไดเรกทอรีเดียวกัน แต่~aมีหนึ่งไดเรกทอรีขึ้น ไม่สามารถพูดถึงสิ่งเดียวกันสำหรับไดเรกทอรีอื่น ๆ ที่คุณเปลี่ยน
14 cd-command  home 

2
ทำไมไดเรกทอรีปัจจุบันไม่เปลี่ยนแปลงใน makefile
ฉันพยายามที่จะเรียกใช้cdสคริปต์ง่ายๆที่เก็บ git ลงในไดเรกทอรีหนึ่งแล้วไปที่ไดเรกทอรีนี้เพื่อดำเนินการสคริปต์การติดตั้ง สคริปต์นี้อยู่ใน Makefile แต่cdดูเหมือนว่าจะไม่ทำงาน ไม่พบสคริปต์การติดตั้งของฉัน ฉันเพิ่ม pwd หลังจากcdในสคริปต์และมันแสดงให้ฉันเห็นไดเรกทอรีจากที่ฉันกำลังรันสคริปต์ไม่ใช่ไดเรกทอรีที่ฉันcdเข้า มีปัญหาอะไร? git clone http://somerepo ~/some_dir cd ~/some_dir/ pwd python myscript.py install => pwd: /hereIsPathToDirectoryFromWhichIRunTheScript หลาม: ไม่สามารถเปิดไฟล์ 'setup.py': [Errno 2] ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว ./setup.pyนอกจากนี้ยังไม่ได้ทำงานกับ หากฉันเข้าสู่เส้นทางที่แน่นอน~/some_dir/setup.pyสคริปต์จะล้มเหลวในภายหลังเนื่องจากพยายามเข้าถึงทรัพยากรในโฟลเดอร์เดียวกัน
14 make  cd-command 

2
ตัวแปรใช้“ ~” สำหรับ cd'ing ได้อย่างไร
ฉันจะใช้ตัวแปร - $BASEในซีดีของฉันได้อย่างไร ฉันลองสิ่งต่อไปนี้ แต่ฉันได้รับข้อผิดพลาด $ cd ~/z/repo_1_ruby_193/ 23:23:57 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 $ BASE="~/z" 23:24:03 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 $ cd $BASE/repo_1_ruby_193 -bash: cd: ~/z/repo_1_ruby_193: No such file or directory 23:24:25 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193

2
ความสมบูรณ์ของคำสั่งสำหรับ `cd` สามารถปรับเปลี่ยนเพื่อแสดงเฉพาะไดเรกทอรีและละเว้นไฟล์ได้หรือไม่
เมื่อฉันอยู่ในไดเรกทอรีในทุบตีและฉันกดcd Space Tabมันจะแสดงทุกอย่างในไดเรกทอรีเป็นไปได้ ( Show all 1000 possibilities?) นี่มันยุ่งยากจริงๆเมื่อฉันอยู่ในไดเรกทอรีที่มีไฟล์ปกติจำนวนมากและมีไดเรกทอรีค่อนข้างน้อย ดังนั้นจึงเป็นไปได้ที่จะเลือกตัวเลือกสำหรับการเติมข้อความอัตโนมัติcdเพื่อรวมเฉพาะไดเรกทอรีหรือไม่ ฉันรู้ว่าฉันจะได้รับรายชื่อไดเรกทอรีภายในไดเรกทอรีโดยทำ ls -d */ แต่ฉันไม่แน่ใจว่าจะดำเนินการต่อจากที่นั่นได้อย่างไร ฉันใช้CentOS 6.6 รอบชิงชนะเลิศ

3
มีปัญหากับการใช้งาน cd ด้วย sudo ในฐานะผู้ใช้รายอื่น
ฉันต้องการเรียกใช้คำสั่งบนเชลล์ในนามของผู้ใช้รายอื่น คำสั่งมีดังนี้: sudo -u USER cd /home/USER ฉันเข้าใจ sudo: cd: command not found ไวยากรณ์ที่ถูกต้องสำหรับคำสั่งให้ส่งผ่านไปยัง sudo คืออะไร?
12 sudo  cd-command 

3
เข้าไปในไดเรกทอรีที่ลิงค์โดยลิงค์
เมื่อฉันcdลิงค์เส้นทางปัจจุบันของฉันจะถูกนำหน้าด้วยเส้นทางของลิงก์แทนที่จะเป็นเส้นทางของไดเรกทอรีที่ลิงก์ไปยังลิงก์ เช่น ~/dirlinks/maths$ ls -l logic lrwxrwxrwx 1 tim tim 71 Jul 27 10:24 logic -> /windows-d/academic discipline/study objects/areas/formal systems/logic ~/dirlinks/maths$ cd logic ~/dirlinks/maths/logic$ pwd /home/tim/dirlinks/maths/logic ~/dirlinks/maths/logic$ cd .. ~/dirlinks/maths$ ฉันต้องการให้เส้นทางปัจจุบันของฉันเปลี่ยนไปเป็นเส้นทางของ dir ที่เชื่อมโยงเพื่อที่ฉันจะสามารถทำงานกับผู้ปกครอง dirs ของ dir ที่เชื่อมโยงได้เช่นกัน นอกจากlsการเชื่อมโยงเพื่อค้นหา dir ที่เชื่อมโยงจากนั้นcdเข้าไปยังมันมีวิธีใดบ้างที่จะทำให้สำเร็จได้ง่ายขึ้น? ตัวอย่างเช่นหลังจากcdเป็นลิงก์คุณจะเปลี่ยนเส้นทางปัจจุบันเป็นเส้นทางของ dir ที่เชื่อมโยงได้อย่างไร

2
Gnome-terminal และ Zsh: เก็บไดเรกทอรีปัจจุบันไว้ที่แท็บ / หน้าต่างใหม่
ฉันใช้ gnome 3.10.1 ใน Arch กับ Zsh ฉันประสบปัญหานั้นเมื่อฉันสร้างแท็บหรือหน้าต่างใหม่จากหน้าต่างเทอร์มินัลมันจะรีเซ็ต dir ปัจจุบันไปยัง dir บ้านของฉัน ฉันได้ลองแล้ว: gnome-terminal: ติดตามไดเรกทอรีในแท็บใหม่แต่มันไม่ทำงาน ฉันคิดว่ามันอาจเป็นการกำหนดค่าบางอย่างใน.zshrcไฟล์ของฉันดังนั้นฉันจึงล้างมันและวางบรรทัดต่อไปนี้: . /etc/profile.d/vte.sh อย่างไรก็ตามมันใช้งานไม่ได้ตามที่คาดไว้ ใช่ไฟล์นี้มีอยู่และนี่คือเนื้อหา: # Copyright © 2006 Shaun McCance <shaunm@gnome.org> # Copyright © 2013 Peter De Wachter <pdewacht@gmail.com> # # This program is free software; you can redistribute it and/or modify # it …

4
ฉันจะใช้ `find 'เพื่อไปยังไดเรกทอรีของไฟล์นั้นได้อย่างไร
ฉันต้องการค้นหาไฟล์จากนั้นป้อนไดเรกทอรีที่มีไฟล์ ฉันพยายามfind /media/storage -name "Fedora" | xargs cdแต่แน่นอนฉันis not a directoryผิดพลาด ฉันจะป้อนไดเรกทอรีหลักด้วยคำสั่งหนึ่งบรรทัดได้อย่างไร
11 shell  find  xargs  cd-command 

1
ฉันจะเปลี่ยนเส้นทางเอาต์พุตไปยัง cd ได้อย่างไร
เป็นไปได้ไหมที่จะเปลี่ยนทิศทางเอาต์พุตของคำสั่งไปcd? ตัวอย่างเช่นฉันค้นหาไดเรกทอรีโดยใช้locateและได้รับเส้นทางไป ตอนนี้แทนที่จะเขียนcdเส้นทางฉันสามารถเปลี่ยนเส้นทางไปยังlocateผลลัพธ์ได้cdหรือไม่ ฉันลองสิ่งนี้: $ locate Descargas | grep Descargas$ /home/oliver/Descargas $ locate Descargas | grep Descargas$ | cd $ locate Descargas | grep Descargas$ > cd $ locate Descargas | grep Descargas$ < cd /home/oliver/Descargas $ ไม่มีโชค. สิ่งนี้อาจไม่มีประโยชน์เป็นพิเศษ แต่ฉันอยากรู้

4
การเก็บประวัติต่อไดเรกทอรีทำงาน (cf. ต่อเซสชันของเชลล์)
มีวิธีที่จะทำให้คุณสมบัติประวัติของเชลล์สมัยใหม่ถูกกำหนดขอบเขตไปยังเส้นทางหรือไม่? บริบทการทำงานของฉันแบ่งออกเป็นพา ธ บนระบบไฟล์และรูปแบบของกิจกรรมเชลล์เช่นคำสั่งที่ออกซ้ำ ๆ มีแนวโน้มที่จะแตกต่างกันไปในแต่ละโครงการ มันจะดีถ้าฉันสามารถขอบเขตคุณลักษณะประวัติกับคำสั่งที่ออกจากเส้นทางปัจจุบัน (หรือเส้นทางย่อย)

1
“ cd” เป็น / sys / kernel / debug / tracing ทำให้เกิดการเปลี่ยนแปลงสิทธิ์
วันนี้ฉันได้พบกับปัญหาที่แปลกมากและไม่มีประโยชน์อะไรเกี่ยวกับเรื่องนี้เลย เซิร์ฟเวอร์ที่ฉันจัดการบางตัวได้รับการตรวจสอบด้วย Nagios เมื่อเร็ว ๆ นี้ฉันเห็นโพรบการใช้งานดิสก์ที่ล้มเหลวด้วยข้อผิดพลาดนี้: DISK CRITICAL - / sys / kernel / debug / tracing ไม่สามารถเข้าถึงได้: ปฏิเสธการอนุญาต ฉันต้องการตรวจสอบและความพยายามครั้งแรกของฉันคือตรวจสอบการอนุญาตของไดเรกทอรีนี้และเปรียบเทียบกับเซิร์ฟเวอร์อื่น (ผู้ที่ทำงานได้ดี) นี่คือคำสั่งที่ฉันรันบนเซิร์ฟเวอร์ที่ใช้งานได้และคุณจะเห็นว่าทันทีที่ฉันcdเข้าสู่ไดเรกทอรีสิทธิ์จะเปลี่ยนไป: # Here we've got 555 for /sys/kernel/debug/tracing root@vps690079:/home/admin# cd /sys/kernel/debug root@vps690079:/sys/kernel/debug# ll total 0 drwx------ 30 root root 0 Jul 19 13:13 ./ drwxr-xr-x 13 root root 0 …

2
คุณสามารถอธิบายสามสิ่งนี้ในรหัสทุบตีนี้ให้ฉันได้ไหม
ฉันมีfunctionใน.bashrcไฟล์ของฉัน ฉันรู้ว่ามันทำอะไรมันทำตามขั้นตอน X หลาย ๆ ไดเรกทอรีด้วยcd นี่มันคือ: up() { local d="" limit=$1 for ((i=1 ; i <= limit ; i++)) do d=$d/.. done d=$(echo $d | sed 's/^\///') if [ -z "$d" ]; then d=.. fi cd $d } แต่คุณสามารถอธิบายสามสิ่งนี้จากฉันได้ไหม? d=$d/.. sed 's/^\///' d=.. ทำไมไม่ทำเช่นนี้: up() { limit=$1 for ((i=1 …

4
ความแตกต่างระหว่าง 'cd' และ 'cd ~'
ฉันสงสัยว่าถ้าซีดีเพียงอย่างเดียวส่งฉันไปที่โฟลเดอร์บ้านและcd ~ทำแบบเดียวกันทำไม ~ ถูกเพิ่มเข้ามาตั้งแต่แรก? เป็นสิ่งที่เฉพาะเจาะจงกับ BASH หรือว่าพวกเขาจะมีพฤติกรรมที่แตกต่างในเชลล์อื่นหรือไม่?
10 cd-command  home 

5
วิธีทำ 'cd dir / filename` พาฉันไป dir /?
ฉันคิดว่ามันสะดวกที่จะใช้cdกับอาร์กิวเมนต์ไฟล์ cd myDirectory/anyname.anyExtension จะเทียบเท่า cd myDirectory/ อะไรคือนามแฝงหรือหน้าที่ที่ดีที่สุดเพื่อให้บรรลุพฤติกรรมนี้ แก้ไข : ขอโทษฉันไม่ได้พูดถึงมันในสถานที่ที่ 1: ฉันใช้zsh
10 shell  cd-command 

3
ฉันจะ cd ไปยังไดเรกทอรี sibling ก่อนหน้า / ถัดไปได้อย่างไร
ฉันมักจะมีรูปแบบไดเรกทอรีโครงการเช่นนี้ project `-- component-a | `-- files... `-- component-b | `-- files... `-- component-c `-- files... ฉันมักจะทำงานในหนึ่งในcomponentไดเรกทอรีเพราะนั่นคือที่ที่ไฟล์อยู่ เมื่อฉันกลับไปที่เชลล์ฉันมักจะต้องย้ายไปยังไดเรกทอรี sibling โดยเฉพาะอย่างยิ่งเมื่อฉันจำเป็นต้องทำการเปลี่ยนแปลงที่ไม่สามารถเขียนสคริปต์ได้ทุกองค์ประกอบ ในกรณีเหล่านั้นฉันจะไม่สนใจสิ่งที่ไดเรกทอรีพี่น้องก่อนหน้าคือที่ฉันจะทำงานหรือไดเรกทอรีพี่น้องถัดไป ฉันสามารถกำหนดคำสั่งprevหรือnextว่าcdฉันจะเข้าไปในไดเรกทอรีก่อนหน้าหรือไดเรกทอรีถัดไป (ตามตัวอักษรหรืออะไรก็ตาม) ได้อย่างง่ายดายหรือไม่? เพราะการพิมพ์cd ../com<TAB><Arrow keys>ตลอดเวลากำลังจะแก่ลงสักหน่อย

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