Unix / Linux - การจัดการไดเรกทอรี

ในบทนี้เราจะพูดถึงรายละเอียดเกี่ยวกับการจัดการไดเร็กทอรีใน Unix

ไดเร็กทอรีคือไฟล์งานเดี่ยวที่ใช้เก็บชื่อไฟล์และข้อมูลที่เกี่ยวข้อง ไฟล์ทั้งหมดไม่ว่าจะเป็นธรรมดาพิเศษหรือไดเร็กทอรีมีอยู่ในไดเร็กทอรี

Unix ใช้โครงสร้างลำดับชั้นในการจัดระเบียบไฟล์และไดเร็กทอรี โครงสร้างนี้มักเรียกว่าโครงสร้างไดเรกทอรี ต้นไม้มีโหนดรูทเดียวอักขระสแลช (/) และไดเรกทอรีอื่น ๆ ทั้งหมดจะอยู่ด้านล่าง

โฮมไดเร็กทอรี

ไดเร็กทอรีที่คุณพบเมื่อล็อกอินครั้งแรกเรียกว่าโฮมไดเร็กทอรีของคุณ

คุณจะทำงานส่วนใหญ่ในโฮมไดเร็กทอรีและไดเร็กทอรีย่อยที่คุณจะสร้างเพื่อจัดระเบียบไฟล์ของคุณ

คุณสามารถเข้าไปในโฮมไดเร็กทอรีของคุณได้ตลอดเวลาโดยใช้คำสั่งต่อไปนี้ -

$cd ~
$

ที่นี่ ~บ่งชี้โฮมไดเร็กทอรี สมมติว่าคุณต้องไปที่โฮมไดเร็กทอรีของผู้ใช้รายอื่นให้ใช้คำสั่งต่อไปนี้ -

$cd ~username
$

ในการไปที่ไดเร็กทอรีสุดท้ายของคุณคุณสามารถใช้คำสั่งต่อไปนี้ -

$cd -
$

ชื่อพา ธ สัมบูรณ์ / สัมพัทธ์

ไดเร็กทอรีถูกจัดเรียงตามลำดับชั้นโดยมีรูท (/) อยู่ด้านบน ตำแหน่งของไฟล์ใด ๆ ภายในลำดับชั้นอธิบายโดยชื่อพา ธ

องค์ประกอบของชื่อพา ธ ถูกคั่นด้วย / ชื่อพา ธ เป็นค่าสัมบูรณ์หากอธิบายโดยสัมพันธ์กับรูทดังนั้นชื่อพา ธ สัมบูรณ์จะเริ่มต้นด้วย a /

ต่อไปนี้เป็นตัวอย่างบางส่วนของชื่อไฟล์ที่สมบูรณ์

/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3

ชื่อพา ธ ยังสามารถสัมพันธ์กับไดเร็กทอรีการทำงานปัจจุบันของคุณ ชื่อพา ธ สัมพัทธ์ไม่เคยขึ้นต้นด้วย / เมื่อเทียบกับโฮมไดเร็กทอรีของผู้ใช้ amrood ชื่อพา ธ บางชื่ออาจมีลักษณะเช่นนี้ -

chem/notes
personal/res

ในการกำหนดตำแหน่งที่คุณอยู่ภายในลำดับชั้นของระบบไฟล์เมื่อใดก็ได้ให้ป้อนคำสั่ง pwd เพื่อพิมพ์ไดเร็กทอรีการทำงานปัจจุบัน -

$pwd
/user0/home/amrood

$

รายชื่อไดเรกทอรี

ในการแสดงรายการไฟล์ในไดเร็กทอรีคุณสามารถใช้ไวยากรณ์ต่อไปนี้ -

$ls dirname

ต่อไปนี้เป็นตัวอย่างเพื่อแสดงรายการไฟล์ทั้งหมดที่มีอยู่ /usr/local ไดเรกทอรี -

$ls /usr/local

X11       bin          gimp       jikes       sbin
ace       doc          include    lib         share
atalk     etc          info       man         ami

การสร้างไดเรกทอรี

ตอนนี้เราจะเข้าใจวิธีการสร้างไดเรกทอรี ไดเร็กทอรีถูกสร้างขึ้นโดยคำสั่งต่อไปนี้ -

$mkdir dirname

ที่นี่ไดเร็กทอรีคือชื่อพา ธ สัมบูรณ์หรือสัมพัทธ์ของไดเร็กทอรีที่คุณต้องการสร้าง ตัวอย่างเช่นคำสั่ง -

$mkdir mydir
$

สร้างไดเร็กทอรี mydirในไดเร็กทอรีปัจจุบัน นี่คืออีกตัวอย่างหนึ่ง -

$mkdir /tmp/test-dir
$

คำสั่งนี้สร้างไดเร็กทอรี test-dir ใน /tmpไดเรกทอรี mkdir คำสั่งไม่สร้างเอาต์พุตหากสร้างไดเร็กทอรีที่ร้องขอได้สำเร็จ

หากคุณให้มากกว่าหนึ่งไดเร็กทอรีบนบรรทัดคำสั่ง mkdirสร้างไดเรกทอรีแต่ละรายการ ตัวอย่างเช่น -

$mkdir docs pub
$

สร้างไดเร็กทอรี docs และ pub ภายใต้ไดเร็กทอรีปัจจุบัน

การสร้างไดเรกทอรีหลัก

ตอนนี้เราจะเข้าใจวิธีสร้างไดเรกทอรีหลัก บางครั้งเมื่อคุณต้องการสร้างไดเร็กทอรีไดเร็กทอรีหลักหรือไดเร็กทอรีอาจไม่มีอยู่ ในกรณีนี้,mkdir ออกข้อความแสดงข้อผิดพลาดดังนี้ -

$mkdir /tmp/amrood/test
mkdir: Failed to make directory "/tmp/amrood/test"; 
No such file or directory
$

ในกรณีเช่นนี้คุณสามารถระบุไฟล์ -p ตัวเลือกสำหรับ mkdirคำสั่ง สร้างไดเรกทอรีที่จำเป็นทั้งหมดสำหรับคุณ ตัวอย่างเช่น -

$mkdir -p /tmp/amrood/test
$

คำสั่งด้านบนสร้างไดเร็กทอรีหลักที่จำเป็นทั้งหมด

การลบไดเรกทอรี

สามารถลบไดเรกทอรีโดยใช้ไฟล์ rmdir คำสั่งดังนี้ -

$rmdir dirname
$

Note - ในการลบไดเร็กทอรีตรวจสอบให้แน่ใจว่าว่างซึ่งหมายความว่าไม่ควรมีไฟล์หรือไดเร็กทอรีย่อยใด ๆ ในไดเร็กทอรีนี้

คุณสามารถลบไดเร็กทอรีทีละหลายรายการได้ดังนี้ -

$rmdir dirname1 dirname2 dirname3
$

คำสั่งดังกล่าวจะลบไดเร็กทอรี dirname1, dirname2 และ dirname3 หากว่างเปล่า rmdir คำสั่งไม่ก่อให้เกิดเอาต์พุตหากทำได้สำเร็จ

การเปลี่ยนไดเรกทอรี

คุณสามารถใช้ไฟล์ cdคำสั่งทำมากกว่าแค่เปลี่ยนเป็นโฮมไดเร็กทอรี คุณสามารถใช้เพื่อเปลี่ยนเป็นไดเร็กทอรีใดก็ได้โดยระบุพา ธ สัมบูรณ์หรือสัมพัทธ์ที่ถูกต้อง ไวยากรณ์เป็นไปตามที่ระบุด้านล่าง -

$cd dirname
$

ที่นี่ dirnameคือชื่อของไดเร็กทอรีที่คุณต้องการเปลี่ยน ตัวอย่างเช่นคำสั่ง -

$cd /usr/local/bin
$

การเปลี่ยนแปลงไดเร็กทอรี /usr/local/bin. จากไดเร็กทอรีนี้คุณสามารถcd ไปยังไดเร็กทอรี /usr/home/amrood โดยใช้เส้นทางสัมพัทธ์ต่อไปนี้ -

$cd ../../home/amrood
$

เปลี่ยนชื่อไดเรกทอรี

mv (move)คำสั่งสามารถใช้เพื่อเปลี่ยนชื่อไดเร็กทอรี ไวยากรณ์มีดังนี้ -

$mv olddir newdir
$

คุณสามารถเปลี่ยนชื่อไดเร็กทอรี mydir ถึง yourdir ดังต่อไปนี้ -

$mv mydir yourdir
$

ไดเรกทอรี (dot) และ .. (dot dot)

filename .(จุด) แทนไดเร็กทอรีการทำงานปัจจุบัน และfilename .. (dot dot) แสดงถึงไดเร็กทอรีหนึ่งระดับเหนือไดเร็กทอรีการทำงานปัจจุบันซึ่งมักเรียกว่าไดเร็กทอรีหลัก

หากเราป้อนคำสั่งเพื่อแสดงรายการไดเร็กทอรี / ไฟล์การทำงานปัจจุบันและใช้ไฟล์ -a option เพื่อแสดงรายการไฟล์ทั้งหมดและไฟล์ -l option เพื่อให้รายชื่อยาวเราจะได้รับผลดังต่อไปนี้

$ls -la
drwxrwxr-x    4    teacher   class   2048  Jul 16 17.56 .
drwxr-xr-x    60   root              1536  Jul 13 14:18 ..
----------    1    teacher   class   4210  May 1 08:27 .profile
-rwxr-xr-x    1    teacher   class   1948  May 12 13:42 memo
$