วิธีการลบไฟล์และไดเร็กทอรีใน Linux Terminal
rm
และ rmdir
คำสั่งลบไฟล์และไดเรกทอรีบน Linux, MacOS และ Unix เหมือนระบบปฏิบัติการอื่น ๆ คล้ายกับคำสั่งdel
และ deltree
ใน Windows และ DOS คำสั่งเหล่านี้มีประสิทธิภาพมากและมีตัวเลือกค่อนข้างน้อย
สิ่งสำคัญคือต้องทราบว่าไฟล์และไดเรกทอรีที่ถูกลบโดยใช้rm
และrmdir
ไม่ถูกย้ายไปที่ถังขยะ สิ่งเหล่านี้จะถูกลบออกจากคอมพิวเตอร์ของคุณทันที หากคุณลบไฟล์โดยไม่ได้ตั้งใจโดยใช้คำสั่งเหล่านี้วิธีเดียวที่คุณจะสามารถกู้คืนได้คือจากข้อมูลสำรอง
วิธีการลบไฟล์ด้วย rm
กรณีที่ง่ายที่สุดคือการลบไฟล์เดียวในไดเร็กทอรีปัจจุบัน พิมพ์rm
คำสั่งช่องว่างแล้วตามด้วยชื่อไฟล์ที่คุณต้องการลบ
rm file_1.txt
หากไฟล์ไม่อยู่ในไดเร็กทอรีการทำงานปัจจุบันให้ระบุเส้นทางไปยังตำแหน่งของไฟล์
rm ./path/to/the/file/file_1.txt
rm
คุณสามารถส่งผ่านมากกว่าหนึ่งชื่อไฟล์ที่จะ เพื่อลบไฟล์ที่ระบุทั้งหมด
rm file_2.txt file_3.txt
สามารถใช้สัญลักษณ์แทนเพื่อเลือกกลุ่มไฟล์ที่จะลบ *
แสดงให้เห็นถึงตัวละครหลายและ?
แสดงให้เห็นถึงตัวเดียว คำสั่งนี้จะลบไฟล์รูปภาพ png ทั้งหมดในไดเร็กทอรีการทำงานปัจจุบัน
rm * .png
คำสั่งนี้จะลบไฟล์ทั้งหมดที่มีนามสกุลอักขระเดียว ตัวอย่างเช่นจะลบ File.1 และ File.2 แต่ไม่ใช่ File.12
rm *.?
หากไฟล์ได้รับการป้องกันการเขียนคุณจะได้รับแจ้งก่อนที่ไฟล์จะถูกลบ คุณต้องตอบกลับy
หรือn
แล้วกด“ Enter”
เพื่อลดความเสี่ยงในการใช้โดยใช้rm
สัญลักษณ์แทนให้ใช้-i
ตัวเลือก (โต้ตอบ) คุณต้องยืนยันการลบไฟล์แต่ละไฟล์
rm -i * .dat
-f
(แรง) ตัวเลือกที่ตรงข้ามของการโต้ตอบ ไม่แจ้งให้ยืนยันแม้ว่าไฟล์จะได้รับการป้องกันการเขียนก็ตาม
rm -f ชื่อไฟล์
วิธีการลบไดเรกทอรีด้วย rm
ในการลบไดเร็กทอรีว่างให้ใช้-d
อ็อพชัน (ไดเร็กทอรี) คุณสามารถใช้สัญลักษณ์แทน ( *
และ?
) ในชื่อไดเรกทอรีได้เช่นเดียวกับชื่อไฟล์
rm -d ไดเร็กทอรี
การระบุชื่อไดเร็กทอรีมากกว่าหนึ่งชื่อจะลบไดเร็กทอรีว่างทั้งหมดที่ระบุ
rm -d ไดเร็กทอรี 1 ไดเร็กทอรี 2 / path / to / ไดเร็กทอรี 3
หากต้องการลบไดเร็กทอรีที่ไม่ว่างให้ใช้-r
ตัวเลือก (เรียกซ้ำ) เพื่อความชัดเจนสิ่งนี้จะลบไดเร็กทอรีและไฟล์และไดเร็กทอรีย่อยทั้งหมดที่มีอยู่ภายใน
rm -r ไดเร็กทอรี 1 ไดเร็กทอรี 2 ไดเร็กทอรี 3
หากไดเรกทอรีหรือไฟล์มีการป้องกันการเขียนคุณจะได้รับแจ้งให้ยืนยันการลบ ในการลบไดเร็กทอรีที่ไม่ว่างเปล่าและเพื่อระงับพร้อมต์เหล่านี้ให้ใช้อ็อพชัน-r
(เรียกซ้ำ) และ-f
(บังคับ) ร่วมกัน
rm -rf ไดเร็กทอรี
จำเป็นต้องมีการดูแลที่นี่ การทำผิดพลาดกับrm -rf
คำสั่งอาจทำให้ข้อมูลสูญหายหรือระบบทำงานผิดพลาด เป็นนโยบายที่อันตรายและข้อควรระวังคือนโยบายที่ดีที่สุด เพื่อให้เข้าใจโครงสร้างไดเร็กทอรีและไฟล์ที่จะถูกลบโดยrm -rf
คำสั่งให้ใช้tree
คำสั่ง
ใช้ apt-get
เพื่อติดตั้งแพ็คเกจนี้ลงในระบบของคุณหากคุณใช้ Ubuntu หรือการแจกจ่ายที่ใช้ Debian อื่น ในการกระจาย Linux อื่น ๆ ให้ใช้เครื่องมือการจัดการแพ็คเกจของการแจกจ่าย Linux แทน
sudo apt-get install ทรี
การรันtree
คำสั่งจะสร้างไดอะแกรมที่เข้าใจง่ายของโครงสร้างไดเร็กทอรีและไฟล์ที่อยู่ใต้ไดเร็กทอรีที่รัน
ต้นไม้
คุณยังสามารถระบุพา ธ ไปยังtree
คำสั่งเพื่อทำให้สตาร์ททรีจากไดเร็กทอรีอื่นในระบบไฟล์
เส้นทางต้นไม้ / to / ไดเรกทอรี
rm
คำสั่งนอกจากนี้ยังมี--one-file-system, --no-preserve-root, --preserve-root
ตัวเลือก แต่ผู้ที่ได้รับการแนะนำเฉพาะสำหรับผู้ใช้ขั้นสูง หากคุณพบสิ่งผิดปกติคุณอาจลบไฟล์ระบบทั้งหมดโดยไม่ได้ตั้งใจ ดูข้อมูลเพิ่มเติมในหน้าคู่มือคำสั่ง
วิธีการลบไดเรกทอรีด้วย rmdir
มีคำสั่งอื่นที่เรียกrmdir
ว่าคุณสามารถใช้เพื่อลบไดเรกทอรี ความแตกต่างระหว่างrm
และrmdir
คือrmdir
สามารถลบไดเร็กทอรีที่ว่างเปล่าเท่านั้น มันจะไม่ลบไฟล์
กรณีที่ง่ายที่สุดคือการลบไดเร็กทอรีว่างเดียว เช่นเดียวกับrm
คุณสามารถส่งชื่อไดเร็กทอรีหลายชื่อไปยังrmdir
หรือพา ธ ไปยังไดเร็กทอรี
ลบไดเร็กทอรีเดียวในไดเร็กทอรีปัจจุบันโดยส่งชื่อไปที่rmdir
:
ไดเรกทอรี rmdir
ลบหลายไดเรกทอรีโดยส่งรายชื่อไปที่ rmdir
:
rmdir ไดเร็กทอรี 1 ไดเร็กทอรี 2 ไดเร็กทอรี 3
ลบไดเร็กทอรีที่ไม่อยู่ในไดเร็กทอรีปัจจุบันโดยระบุพา ธ แบบเต็มไปยังไดเร็กทอรีนั้น:
rmdir / path / to / ไดเร็กทอรี
หากคุณพยายามลบโฟลเดอร์ที่ไม่ว่างเปล่าrmdir
จะแสดงข้อความแสดงข้อผิดพลาด ในตัวอย่างต่อไปนี้rmdir
สำเร็จและลบclients
ไดเร็กทอรีแบบไม่โต้ตอบ แต่ปฏิเสธที่จะลบprojects
ไดเร็กทอรีเนื่องจากมีไฟล์ projects
ไดเร็กทอรีจะถูกปล่อยให้เหมือนเดิมทุกประการและไฟล์ในนั้นจะไม่ถูกแตะต้อง
เมื่อrmdir
ให้ข้อผิดพลาด“ Directory not empty” จะหยุดประมวลผลไดเร็กทอรีที่ส่งผ่านไปยังบรรทัดคำสั่ง หากคุณขอให้ลบสี่ไดเรกทอรีและรายการแรกมีไฟล์อยู่ในนั้นrmdir
จะให้ข้อความแสดงข้อผิดพลาดและไม่ต้องทำอะไรเพิ่มเติม คุณสามารถบังคับให้ละเว้นข้อผิดพลาดเหล่านี้ด้วย--ignore-fail-on-non-empty
ตัวเลือกเพื่อให้ไดเร็กทอรีอื่นได้รับการประมวลผล
ในตัวอย่างต่อไปสองโฟลเดอร์ได้รับการส่งผ่านไปยังrmdir
เหล่านี้เป็นและwork/reports
ตัวเลือกที่ได้รับการรวมอยู่ในคำสั่ง โฟลเดอร์ที่มีไฟล์ในมันดังนั้นไม่สามารถลบได้ กองกำลังตัวเลือกที่จะไม่สนใจข้อผิดพลาดและย้ายไปยังโฟลเดอร์ถัดไปจะต้องมีกระบวนการซึ่งเป็น นี่คือโฟลเดอร์ว่างและลบทิ้งwork/quotes
--ignore-fail-on-non-empty
work/reports
rmdir
--ignore-fail-on-non-empty
rmdir
work/quotes
rmdir
นี่คือคำสั่งที่ใช้
rmdir --ignore-fail-on-non-empty งาน / รายงาน / งาน / คำพูด
คุณสามารถใช้ -p
อ็อพชัน (parent) เพื่อลบไดเร็กทอรีและลบไดเร็กทอรีพาเรนต์ได้ด้วย เคล็ดลับนี้ใช้ได้ผลเนื่องจากrmdir
เริ่มต้นด้วยไดเร็กทอรีเป้าหมายจากนั้นย้อนกลับไปที่พาเรนต์ ไดเร็กทอรีนั้นควรว่างเปล่าดังนั้นจึงสามารถลบได้โดยrmdir
และกระบวนการนี้จะทำซ้ำการสำรองพา ธ ที่ระบุrmdir
ไว้
ในตัวอย่างต่อไปนี้คำสั่งที่ส่งผ่านไปrmdir
คือ:
rmdir -p งาน / ใบแจ้งหนี้
ทั้งไดเร็กทอรีinvoices
และwork
ไดเร็กทอรีจะถูกลบตามที่ร้องขอ
ไม่ว่าคุณจะใช้ Bash หรือเชลล์อื่น ๆ ก็ตาม Linux มีคำสั่งที่ยืดหยุ่นและมีประสิทธิภาพเพื่อให้คุณลบไดเร็กทอรีและไฟล์ได้โดยตรงจากบรรทัดคำสั่งเทอร์มินัล บางคนชอบที่จะมีเวิร์กโฟลว์ที่หมุนรอบเทอร์มินัล คนอื่นอาจไม่มีทางเลือกในเรื่องนี้ พวกเขาอาจทำงานบนเซิร์ฟเวอร์โดยไม่ได้ติดตั้ง GUI หรือในเซสชันระยะไกลไปยังระบบ headless เช่น Raspberry Pi คำสั่งเหล่านี้เหมาะอย่างยิ่งสำหรับคนกลุ่มนั้น
แต่ไม่ว่าคุณต้องการเวิร์กโฟลว์ประเภทใดคำสั่งเหล่านี้ช่วยให้สามารถรวมอยู่ในเชลล์สคริปต์ได้เป็นอย่างดี หากสคริปต์ถูกทริกเกอร์โดยcron
งานสามารถช่วยทำงานดูแลทำความสะอาดตามปกติโดยอัตโนมัติเช่นการล้างไฟล์บันทึกที่ไม่ต้องการ หากคุณตรวจสอบกรณีการใช้งานนั้นโปรดจำพลังของคำสั่งเหล่านี้ทดสอบทุกอย่างอย่างรอบคอบและสำรองข้อมูลล่าสุดไว้เสมอ