<ก่อนหน้านี้ | Contents | ถัดไป>
ในไม่ช้า เราจะพูดถึงเครื่องมือบรรทัดคำสั่งสองสามอย่างสำหรับการดู ไฟล์ข้อความธรรมดา. เครื่องมือเหล่านี้จะไม่ทำงานเมื่อใช้กับไฟล์ผิดประเภท ในกรณีที่เลวร้ายที่สุด เทอร์มินัลของคุณจะพังและ/หรือส่งเสียงบี๊บดังมาก หากเกิดเหตุการณ์นี้กับคุณ เพียงปิดเซสชันเทอร์มินัลแล้วเริ่มเซสชันใหม่ แต่พยายามหลีกเลี่ยงเพราะมันมักจะเป็นการรบกวนผู้อื่นอย่างมาก
3.3.2. การสร้างและการลบไฟล์และไดเร็กทอรี
3.3.2.1. ทำตัววุ่นวาย...
... ไม่ใช่เรื่องยากเลยที่จะทำ ทุกวันนี้เกือบทุกระบบมีเครือข่าย ดังนั้นไฟล์จึงถูกคัดลอกจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งโดยธรรมชาติ และโดยเฉพาะอย่างยิ่งเมื่อทำงานในสภาพแวดล้อมแบบกราฟิก การสร้างไฟล์ใหม่เป็นเรื่องง่ายและมักจะทำโดยไม่ได้รับอนุมัติจากผู้ใช้ เพื่อแสดงปัญหา นี่คือเนื้อหาทั้งหมดของไดเร็กทอรีของผู้ใช้ใหม่ ซึ่งสร้างขึ้นบนระบบ RedHat มาตรฐาน:
[newuser@ผู้ใช้ blob]$ ls-al
รวม 32
drwx------ ผู้ใช้ 3 ราย 4096 16 ม.ค. 13:32 น.
drwxr-xr-x 6 root root 4096 16 ม.ค. 13:32 ..
-rw-r--r-- | 1 | ผู้ใช้งาน | ผู้ใช้งาน | 24 | แจน | 16 | 13:32 | .bash_logout |
-rw-r--r-- | 1 | ผู้ใช้งาน | ผู้ใช้งาน | 191 | แจน | 16 | 13:32 | .bash_profile |
-rw-r--r-- | 1 | ผู้ใช้งาน | ผู้ใช้งาน | 124 | แจน | 16 | 13:32 | .bashrc |
drwxr-xr-x | 3 | ผู้ใช้งาน | ผู้ใช้งาน | 4096 | แจน | 16 | 13:32 | .kde |
-rw-r--r-- | 1 | ผู้ใช้งาน | ผู้ใช้งาน | 3511 | แจน | 16 | 13:32 | .screenrc |
-rw------- | 1 | ผู้ใช้งาน | ผู้ใช้งาน | 61 | แจน | 16 | 13:32 | .xauthDqztLr |
เมื่อแรกเห็น เนื้อหาของโฮมไดเร็กทอรี "ที่ใช้แล้ว" ก็ไม่ได้ดูแย่ขนาดนั้นเช่นกัน:
mp3/
OpenOffice.org638/
mp3/
หอยโข่ง/ staroffice6.0/ nqc/
desktoptest/ Machines@ ns_imap/ เอกสาร/
อีแมค@
หอยโข่ง/ staroffice6.0/ nqc/
desktoptest/ Machines@ ns_imap/ เอกสาร/
อีแมค@
ผู้ใช้เก่า:~> ls
app-defaults/ ครอสโอเวอร์/ บทความ/
ถังขยะ/ brol/ C/
ปิด/
ผู้ใช้เก่า:~> ls
app-defaults/ ครอสโอเวอร์/ บทความ/
ถังขยะ/ brol/ C/
ปิด/
เดสก์ทอป/
เดสก์ท็อป1/
เดสก์ทอป/
เดสก์ท็อป1/
Fvwm@ GNUstep/
ภาพ /
Fvwm@ GNUstep/
ภาพ /
จดหมาย/
จดหมาย/
จดหมาย/
จดหมาย/
อีเมล/
อีเมล/
การฝึกอบรม/
เริ่มเว็บ/ xml/
การฝึกอบรม/
เริ่มเว็บ/ xml/
office52/ Xrootenv.0
office52/ Xrootenv.0
แต่เมื่อรวมไดเร็กทอรีและไฟล์ทั้งหมดที่ขึ้นต้นด้วยจุดแล้ว มี 185 รายการในไดเร็กทอรีนี้ เนื่องจากแอปพลิเคชันส่วนใหญ่มีไดเร็กทอรีและ/หรือไฟล์ของตนเอง ซึ่งมีการตั้งค่าเฉพาะผู้ใช้ในโฮมไดเร็กทอรีของผู้ใช้รายนั้น โดยปกติไฟล์เหล่านี้จะถูกสร้างขึ้นในครั้งแรกที่คุณเริ่มแอปพลิเคชัน ในบางกรณี คุณจะได้รับการแจ้งเตือนเมื่อจำเป็นต้องสร้างไดเร็กทอรีที่ไม่มีอยู่จริง แต่โดยส่วนใหญ่แล้วทุกอย่างจะทำโดยอัตโนมัติ
นอกจากนี้ ไฟล์ใหม่จะถูกสร้างขึ้นอย่างต่อเนื่องเนื่องจากผู้ใช้ต้องการบันทึกไฟล์ เก็บงานเวอร์ชันต่างๆ ใช้แอปพลิเคชันอินเทอร์เน็ต และดาวน์โหลดไฟล์และไฟล์แนบไปยังเครื่องในเครื่อง มันไม่หยุด เป็นที่ชัดเจนว่าจำเป็นต้องมีแผนเพื่อให้ภาพรวมของสิ่งต่างๆ
ในหัวข้อถัดไป เราจะพูดถึงวิธีการรักษาระเบียบของเรา เราพูดถึงเฉพาะเครื่องมือข้อความที่มีในเชลล์เท่านั้น เนื่องจากเครื่องมือกราฟิกนั้นใช้งานง่ายมาก และมีรูปลักษณ์และความรู้สึกเหมือนกับเครื่องมือที่รู้จักกันทั่วไป
ตัวจัดการไฟล์สไตล์ MS Windows แบบชี้แล้วคลิก ซึ่งรวมถึงฟังก์ชันความช่วยเหลือแบบกราฟิกและคุณสมบัติอื่นๆ ที่คุณคาดหวังจากแอปพลิเคชันประเภทนี้ รายการต่อไปนี้เป็นภาพรวมของโปรแกรมจัดการไฟล์ยอดนิยมสำหรับ GNU/Linux ตัวจัดการไฟล์ส่วนใหญ่สามารถเริ่มต้นได้จากเมนูของตัวจัดการเดสก์ท็อปของคุณ หรือโดยการคลิกไอคอนโฮมไดเร็กทอรีของคุณ หรือจากบรรทัดคำสั่ง โดยใช้คำสั่งเหล่านี้:
• หอยโข่ง: ตัวจัดการไฟล์เริ่มต้นใน Gnome ซึ่งเป็นเดสก์ท็อป GNU สามารถดูเอกสารที่ดีเยี่ยมเกี่ยวกับการทำงานกับเครื่องมือนี้ได้ที่ http://www.gnome.org
• Konqueror: ตัวจัดการไฟล์มักใช้บนเดสก์ท็อป KDE คู่มือเล่มนี้อยู่ที่ http://docs.kde.org
• mc: Midnight Commander โปรแกรมจัดการไฟล์ Unix ตามแบบฉบับของ Norton Commander เอกสารทั้งหมดมีอยู่ใน http://gnu.org/directory/ หรือมิเรอร์ เช่น http://www.ibiblio.org
แอปพลิเคชันเหล่านี้คุ้มค่าที่จะลองใช้และมักจะสร้างความประทับใจให้ผู้มาใหม่บน Linux หากเพียงเพราะมีความหลากหลายเช่นนี้: นี่เป็นเพียงเครื่องมือยอดนิยมสำหรับการจัดการไดเรกทอรีและไฟล์เท่านั้น และโครงการอื่นๆ อีกมากมายกำลังอยู่ระหว่างการพัฒนา ตอนนี้ เรามาเรียนรู้เกี่ยวกับ internals และดูว่าเครื่องมือกราฟิกเหล่านี้ใช้คำสั่ง UNIX ทั่วไปอย่างไร
3.3.2.2. เครื่องมือ
3.3.2.2.1. การสร้างไดเร็กทอรี
วิธีที่จะทำให้ทุกอย่างเข้าที่คือการกำหนดตำแหน่งเริ่มต้นเฉพาะให้กับไฟล์บางไฟล์โดยการสร้างไดเร็กทอรีและไดเร็กทอรีย่อย (หรือโฟลเดอร์และโฟลเดอร์ย่อยหากต้องการ) นี้จะทำกับ mkdir คำสั่ง:
ริชาร์ด:~> ไฟล์เก็บถาวร mkdir
ริชาร์ด:~> ls -ld ไฟล์เก็บถาวร
drwxrwxrwx 2 ริชาร์ด ริชาร์ด
4096 13 ม.ค. 14:09 น. เอกสารสำคัญ/
ริชาร์ด:~> ไฟล์เก็บถาวร mkdir
ริชาร์ด:~> ls -ld ไฟล์เก็บถาวร
drwxrwxrwx 2 ริชาร์ด ริชาร์ด
การสร้างไดเร็กทอรีและไดเร็กทอรีย่อยในขั้นตอนเดียวทำได้โดยใช้คำสั่ง -p ตัวเลือก:
ริชาร์ด:~> ซีดีเก็บถาวร
ริชาร์ด:~/archive> mkdir 1999 2000 2001
ริชาร์ด:~> ซีดีเก็บถาวร
ริชาร์ด:~/archive> mkdir 1999 2000 2001
ริชาร์ด:~/archive> ls
1999/ 2000/2001/
ริชาร์ด:~/archive> mkdir 2001/reports/ร้านอาหาร-มิชลิน/
mkdir: ไม่สามารถสร้างไดเร็กทอรี `2001/reports/Restaurants-Michelin/':
ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ริชาร์ด:~/archive> mkdir -p 2001/reports/ร้านอาหาร-มิชลิน/
ริชาร์ด:~/archive> ls 2001/รายงาน/
ร้านอาหาร-มิชลิน/
ริชาร์ด:~/archive> ls
1999/ 2000/2001/
ริชาร์ด:~/archive> mkdir 2001/reports/ร้านอาหาร-มิชลิน/
mkdir: ไม่สามารถสร้างไดเร็กทอรี `2001/reports/Restaurants-Michelin/':
ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ริชาร์ด:~/archive> mkdir -p 2001/reports/ร้านอาหาร-มิชลิน/
ริชาร์ด:~/archive> ls 2001/รายงาน/
ร้านอาหาร-มิชลิน/
หากไฟล์ใหม่ต้องการการอนุญาตอื่นนอกเหนือจากสิทธิ์การสร้างไฟล์เริ่มต้น สิทธิ์การเข้าถึงใหม่สามารถตั้งค่าได้ในครั้งเดียว โดยยังคงใช้ mkdir คำสั่ง ดูหน้าข้อมูลสำหรับข้อมูลเพิ่มเติม เราจะพูดถึงโหมดการเข้าถึงในหัวข้อถัดไปเกี่ยวกับความปลอดภัยของไฟล์
ชื่อของไดเร็กทอรีต้องเป็นไปตามกฎเดียวกันกับที่ใช้กับชื่อไฟล์ปกติ ข้อจำกัดที่สำคัญที่สุดอย่างหนึ่งคือ คุณไม่สามารถมีสองไฟล์ที่มีชื่อเดียวกันในไดเร็กทอรีเดียว (แต่โปรดจำไว้ว่า Linux เป็นระบบปฏิบัติการที่คำนึงถึงขนาดตัวพิมพ์ เช่น UNIX) แทบไม่มีการจำกัดความยาวของชื่อไฟล์ แต่โดยทั่วไปแล้วจะมีความยาวไม่เกิน 80 อักขระ จึงสามารถใส่ได้พอดีกับหนึ่งบรรทัดของเทอร์มินัล คุณสามารถใช้อักขระใดก็ได้ที่คุณต้องการในชื่อไฟล์ แม้ว่าควรแยกอักขระที่มีความหมายพิเศษกับเชลล์ออก หากมีข้อสงสัย ให้ตรวจสอบภาคผนวก C
3.3.2.2.2. การย้ายไฟล์
ตอนนี้เราได้จัดโครงสร้างโฮมไดเร็กทอรีของเราอย่างเหมาะสมแล้ว ก็ถึงเวลาล้างไฟล์ที่ไม่จำแนกประเภทโดยใช้ mv
คำสั่ง:
ริชาร์ด:~/archive> mv ../รายงาน[1-4].doc รายงาน/ร้านอาหาร-มิชลิน/
คำสั่งนี้ยังใช้ได้เมื่อเปลี่ยนชื่อไฟล์:
ริชาร์ด:~> มันคือสิ่งที่ต้องทำ
-rw-rw-r-- 1 ริชาร์ด ริชาร์ด
2534 15 ม.ค. 12:39 น. To_Do
ริชาร์ด:~> มันคือสิ่งที่ต้องทำ
-rw-rw-r-- 1 ริชาร์ด ริชาร์ด
ริชาร์ด:~> mv To_Do เสร็จแล้ว
ริชาร์ด:~> ls -l เสร็จแล้ว
-rw-rw-r-- 1 ริชาร์ด ริชาร์ด
2534 15 ม.ค. 12:39 เสร็จแล้ว
ริชาร์ด:~> mv To_Do เสร็จแล้ว
ริชาร์ด:~> ls -l เสร็จแล้ว
-rw-rw-r-- 1 ริชาร์ด ริชาร์ด
เป็นที่ชัดเจนว่ามีเพียงชื่อของไฟล์ที่เปลี่ยนแปลง คุณสมบัติอื่น ๆ ทั้งหมดยังคงเหมือนเดิม
ข้อมูลโดยละเอียดเกี่ยวกับไวยากรณ์และคุณสมบัติของ mv คำสั่งสามารถพบได้ใน man หรือหน้าข้อมูล การใช้เอกสารนี้ควรเป็นสิ่งสะท้อนแรกของคุณเสมอเมื่อต้องเผชิญกับปัญหา คำตอบสำหรับปัญหาของคุณน่าจะอยู่ในเอกสารของระบบ แม้แต่ผู้ใช้ที่มีประสบการณ์ก็อ่าน man page ทุกวัน ดังนั้นผู้ใช้เริ่มต้นควรอ่านมันตลอดเวลา อีกสักครู่ คุณจะได้เรียนรู้ตัวเลือกทั่วไปของคำสั่งทั่วไป แต่คุณยังต้องการเอกสารประกอบเป็นแหล่งข้อมูลหลัก โปรดทราบว่าข้อมูลที่มีอยู่ใน HOWTO คำถามที่พบบ่อย หน้าคู่มือ และแหล่งข้อมูลอื่นๆ จะถูกรวมเข้ากับหน้าข้อมูลอย่างช้าๆ ซึ่งปัจจุบันเป็นแหล่งเอกสารออนไลน์ที่ทันสมัยที่สุด (ตามที่มีอยู่ในระบบ)
3.3.2.2.3. กำลังคัดลอกไฟล์
การคัดลอกไฟล์และไดเร็กทอรีทำได้โดยใช้คำสั่ง cp สั่งการ. ตัวเลือกที่มีประโยชน์คือการคัดลอกซ้ำ (คัดลอกไฟล์และไดเรกทอรีย่อยทั้งหมด) โดยใช้ -R ตัวเลือก cp. ไวยากรณ์ทั่วไปคือ
ซีพี [-R] จากไฟล์ tofile
เป็นตัวอย่างกรณีผู้ใช้ คนใหม่ที่ต้องการผู้ใช้การตั้งค่าเดสก์ท็อป Gnome เดียวกัน คนแก่ มี. วิธีหนึ่งในการแก้ปัญหาคือการคัดลอกการตั้งค่าของ คนแก่ ไปยังโฮมไดเร็กตอรี่ของ คนใหม่:
ผู้ชนะ:~> cp -R ../oldguy/.gnome/ . สิ่งนี้ทำให้เกิดข้อผิดพลาดเกี่ยวกับการอนุญาตไฟล์ แต่ข้อผิดพลาดทั้งหมดเกี่ยวข้องกับไฟล์ส่วนตัวที่ คนใหม่ ไม่ต้องการอยู่แล้ว เราจะพูดถึงในตอนต่อไปว่าจะเปลี่ยนการอนุญาตเหล่านี้อย่างไรในกรณีที่เป็นจริง
ปัญหา.
3.3.2.2.4. การลบไฟล์
ใช้ rm คำสั่งลบไฟล์เดียว คือ rm เพื่อลบไดเร็กทอรีว่าง (ใช้ ls -a เพื่อตรวจสอบว่าไดเร็กทอรีว่างหรือไม่) NS rm คำสั่งยังมีตัวเลือกในการลบไดเร็กทอรีที่ไม่ว่างเปล่าที่มีไดเร็กทอรีย่อยทั้งหมด อ่านหน้าข้อมูลสำหรับตัวเลือกที่ค่อนข้างอันตรายเหล่านี้
ไดเร็กทอรีจะว่างแค่ไหน?
เป็นเรื่องปกติที่ไดเร็กทอรี (dot) และ .. (dot-dot) ไม่สามารถลบออกได้ เนื่องจากมีความจำเป็นในไดเร็กทอรีว่างเพื่อกำหนดอันดับไดเร็กทอรีในลำดับชั้นของระบบไฟล์
บน Linux เช่นเดียวกับบน UNIX ไม่มีถังขยะ - อย่างน้อยก็ไม่ใช่สำหรับเชลล์ แม้ว่าจะมีวิธีแก้ปัญหามากมายสำหรับการใช้กราฟิก ดังนั้นเมื่อลบออกแล้ว ไฟล์จะหายไปจริงๆ และโดยทั่วไปแล้วไม่มีทางที่จะกู้คืนได้ เว้นแต่ว่าคุณมีข้อมูลสำรอง หรือคุณเร็วมากและมีผู้ดูแลระบบที่ดีจริงๆ เพื่อปกป้องผู้ใช้เริ่มต้นจากความอาฆาตพยาบาทนี้ พฤติกรรมโต้ตอบของ rm, cp และ mv คำสั่งสามารถเปิดใช้งานได้โดยใช้ -i ตัวเลือก. ในกรณีนั้นระบบจะไม่ดำเนินการตามคำขอในทันที แต่จะขอการยืนยันแทนดังนั้นจึงต้องคลิกเพิ่มเติมที่ เข้าสู่ กุญแจสำคัญในการทำดาเมจ:
แมรี่:~> rm -ri เก็บถาวร/
rm: ลงไปในไดเร็กทอรี 'archive'? y
rm: ลงไปในไดเร็กทอรี `เก็บถาวร / รายงาน'? y
rm: ลบไดเร็กทอรี 'เก็บถาวร / รายงาน' หรือไม่ y
rm: ลงไปในไดเร็กทอรี `archive/backup'? y rm: ลบ 'archive/backup/sysbup200112.tar' หรือไม่ y rm: ลบไดเร็กทอรี `เก็บถาวร / สำรอง'? y
rm: ลบไดเร็กทอรี 'เก็บถาวร' หรือไม่ y
แมรี่:~> rm -ri เก็บถาวร/
rm: ลงไปในไดเร็กทอรี 'archive'? y
rm: ลงไปในไดเร็กทอรี `เก็บถาวร / รายงาน'? y
rm: ลบไดเร็กทอรี 'เก็บถาวร / รายงาน' หรือไม่ y
rm: ลงไปในไดเร็กทอรี `archive/backup'? y rm: ลบ 'archive/backup/sysbup200112.tar' หรือไม่ y rm: ลบไดเร็กทอรี `เก็บถาวร / สำรอง'? y