ฉันจะนำทางระหว่างไดเรกทอรีในเทอร์มินัลได้อย่างไร


26

ฉันยังใหม่กับ Linux และ Ubuntu และได้ลองเปลี่ยนเป็นโฟลเดอร์ / ไดเรกทอรีด้วยความยากลำบาก

มีคนช่วยอธิบายสาเหตุที่คำสั่งต่อไปนี้ไม่สามารถเปลี่ยนเป็นโฟลเดอร์ / ไดเรกทอรีเป้าหมายที่ต้องการได้หรือไม่

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$

คำตอบ:


38

ระบบไฟล์เป็น GNU / Linux เหมือนต้นไม้ยกเว้นว่ารูทนั้นอยู่ด้านบน :-) คุณมีโครงสร้างเช่น:

/
  bin/
  home/
    sharon/
      Documents/
      Downloads/
      fileA.txt
      fileB.jpg
  usr/
  var/

หากคุณต้องการย้ายภายในต้นไม้ตัวเลือกหนึ่งคือใช้เส้นทางสัมพัทธ์ หากคุณอยู่ใน/home/sharonนั้นการพิมพ์cd Downloadsจะใช้งานได้เพราะดาวน์โหลดเป็นลูกของไดเรกทอรีปัจจุบันของคุณทันที ถ้าคุณอยู่ในโฟลเดอร์ย่อยDocumentsและต้องการที่จะเปลี่ยนไดเรกทอรี ( cd) เพื่อDownloadsที่คุณจะต้องขึ้นไป ( ..) Downloadsแล้ว cd ../Downloadsดังนั้นคำสั่งที่ถูกต้องจะเป็น

คุณสามารถป้อนเส้นทางที่แน่นอนได้ ดังนั้นDownloadsโฟลเดอร์จึงเป็นโฟลเดอร์ย่อยsharonซึ่งเป็นโฟลเดอร์ย่อยhomeที่ ... (คุณจะได้รับความคิด :-)) ดังนั้นคุณสามารถป้อนcd /home/sharon/Downloadsทุกที่ที่คุณอยู่ในระบบไฟล์

  • ~อ้างถึงโฮมไดเร็กทอรีของผู้ใช้ปัจจุบันเสมอ ( /home/sharonในกรณีของคุณ) ถ้าคุณป้อนcd ~/DownloadsคุณจะลงจอดในDownloadsโฟลเดอร์ของคุณ

  • .หมายถึงไดเรกทอรีปัจจุบันจึงเป็นประมาณเทียบเท่ากับcd ./Downloadscd Downloads

  • .. หมายถึง "ไดเรกทอรีหลัก"

  • / ที่จุดเริ่มต้นของพา ธ ไฟล์อ้างถึงไดเรกทอรีรูท

สิ่งที่ดีต่อไปคือการขยายแท็บ หากคุณป้อนcd ~/DowTab(สุดท้ายคือการกดปุ่มทำตาราง) cd ~/Downloadsทุบตีโดยอัตโนมัติขยายไปยัง

อย่างที่คนอื่น ๆ พูดกันว่า GNU / Linux นั้นเล็กหรือใหญ่ จึงทำให้ความแตกต่างถ้าคุณป้อนHome, หรือhOme homeนอกจากนี้ผมหวังว่าคุณจะเห็นว่าตอนนี้มีความแตกต่างระหว่างและ/home homeอันแรกจะถูกต้องสัมบูรณ์ในขณะที่สุดท้ายจะสัมพันธ์กับไดเรกทอรีปัจจุบันของคุณ


1
@ qbi: ว้าวคุณยอดเยี่ยมมาก ฉันชอบคำอธิบายโดยละเอียดเกี่ยวกับวิธีการนำทางในโฟลเดอร์ / ไดเรกทอรี คุณเป็นอาจารย์หรืออาจารย์ในสถาบันการศึกษาหรือไม่? พวกไอทีส่วนใหญ่รู้เรื่องไอทีเป็นอย่างมาก แต่การแบ่งแนวคิดให้เป็นส่วนที่จัดการได้และ "ย่อยได้" เพื่อให้มือใหม่สามารถเข้าใจได้ก็แค่อยู่ในมือของคนที่มีพรสวรรค์ แต่อย่างคุณ
n00b

2
@ n00b หากคุณพบว่าคำตอบนี้มีประโยชน์คุณสามารถ "ยอมรับ" ได้โดยคลิก V ทางด้านซ้าย
Revetahw พูดว่า Reinstate Monica

8
sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 

เซซิลล่าตัวน้อย ~ แสดงว่าคุณอยู่ในไดเรกทอรี / home / sharon แล้ว เมื่อคุณขอ 'cd Home' เทอร์มินัลจะมองหา / home / sharon / Home ไม่มีเลย

sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 

ตอนนี้คุณกำลังขอให้นำเครื่องหมายทับเพื่อไปยังไดเรกทอรีเหนือตำแหน่งปัจจุบัน นั่นคือ / home / Home ไม่มีเลย

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$

ที่ประสบความสำเร็จ!

sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 

ฉันไม่แน่ใจด้วยซ้ำว่านี่คือที่ไหน หากคุณต้องการเปลี่ยนจาก / home / sharon / Documents เป็น / home / sharon / ดาวน์โหลดโปรดลอง:

cd ~/Downloads

หากคุณต้องการไปยังไดเรกทอรีบ้านของคุณโดยตรงนั่นคือ / home / sharon เพียงทำ:

cd

นอกจากนี้คุณสามารถย้อนกลับไปด้วย

cd ..

และคุณสามารถพิมพ์ไดเร็กตอรี่ที่คุณทำงานด้วย (ไดเร็กทอรี่สำหรับพิมพ์)

pwd

@ chili555: ขอบคุณมากที่ช่วยมือใหม่อย่างฉัน สุขสันต์วันคริสต์มาสให้คุณและคนที่คุณรัก
n00b

2
เครื่องหมายทับนำหน้าระบุพา ธ ที่สัมพันธ์กับรูทไม่ใช่หนึ่งอยู่เหนือไดเร็กทอรีปัจจุบัน นั่นจะเป็น../
psusi

3

คำสั่งจะบอกคุณว่าทำไม: ไม่มีไดเรกทอรีดังกล่าว

ชื่อไฟล์เป็นตัวพิมพ์เล็กและใหญ่ดังนั้นจึงเป็น / home ไม่ใช่ / Home หากไม่มีเครื่องหมายทับหน้าจะสันนิษฐานว่าสัมพันธ์กับไดเรกทอรีปัจจุบันและไดเรกทอรีดาวน์โหลดไม่อยู่ใน ~ / Documents และไม่อยู่ใน / แต่ในไดเรกทอรีหลักของคุณซึ่ง~เป็นทางลัดดังนั้นจึงเป็น ~ / เอกสาร


@ psusi: ขอบคุณเช่นกัน สุขสันต์วันคริสต์มาสให้คุณและคนที่คุณรัก
n00b

@ psusi: เครื่องหมายทับหมายถึงอะไร
n00b

@ psusi: ./ <filename> หมายถึงอะไร
n00b

@ noob /หมายถึงเริ่มต้นจากไดเรกทอรีรากและ.หมายถึงไดเรกทอรีปัจจุบัน
psusi

0

ฉันต้องตอบเรื่องนี้เพราะฉันไม่สามารถออกความเห็นเกี่ยวกับคำตอบ -. -

เครื่องหมายทับชั้นนำหมายถึงอะไร - n00b

หมายความว่า thin ที่คุณกำลังพูดถึงคือไดเร็กทอรีไม่ใช่ไฟล์ ไฟล์ไม่จำเป็นต้องมีจุดจบของไฟล์เช่นใน Windows ดังนั้น~/thisIsAFileจะเป็นไฟล์ในโฮมไดเร็กตอรี่ของคุณ แต่~/thisIsAFile/จะเป็นไดเรคทอรี / โฟลเดอร์

แปลว่าอะไร? - n00b

นั่นหมายความว่าไฟล์ที่คุณต้องการเข้าถึงนั้นอยู่ในไดเรกทอรีปัจจุบันของคุณ

เคล็ดลับที่มีประโยชน์อื่น ๆ :

คุณสามารถกลับไปที่โฟลเดอร์ด้วย

cd ..

และคุณจะได้รับเส้นทางที่คุณอยู่ด้วย (พิมพ์ไดเรกทอรีการทำงาน)

pwd

@ a2r: ขอบคุณสำหรับการชี้แจง ฉันไม่รู้ว่าไฟล์ไม่มีนามสกุลไฟล์เหมือนใน Microsoft Windows โปรแกรมมีนามสกุลไฟล์ใน Ubuntu ด้วยหรือไม่
n00b

โดยทั่วไปแล้วระบบจะไม่สนใจว่าไฟล์ใดที่ลงท้ายด้วยถ้าทำเครื่องหมายว่าเป็นไฟล์เรียกทำงาน (google about chmod) คุณสามารถเรียกใช้เป็น programm ได้ นอกจากนี้ยังมีตัวแปรทั่วโลก (google เกี่ยวกับมัน) ที่เรียกว่า $ PATH มีไดเรกทอรีมุมมองที่บันทึกไว้ (คุณสามารถดูว่ามีอยู่ด้วยecho $PATH) และเมื่อคุณพยายามเรียกใช้โปรแกรมเช่นคุณพิมพ์geditใน terminal ระบบของคุณดูเหมือนจะโยนโฟลเดอร์ใน $ PATH และค้นหา gedit
a2r

1
นั่นจะเป็นสแลชต่อท้ายไม่ใช่สแลชนำ ..นอกจากนี้คุณต้องมีพื้นที่ในการก่อนที่จะมีการ
psusi

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