การลบไฟล์ในระบบปฏิบัติการมักทำได้ง่ายเพียงแค่คลิกแล้วกดปุ่มลบหรือคลิกขวาแล้วส่งไปที่ถังขยะ เราทุกคนรู้วิธีทำและเป็นตัวเลือกที่ดีที่สุดในการลบไฟล์ต่อหน้าเรา แต่จะเกิดอะไรขึ้นเมื่อสิ่งที่เราต้องการตัวอย่างเช่นการลบไฟล์หลายไฟล์ที่อยู่ในโฟลเดอร์เดียวกัน? มันเกิดขึ้นที่ใน Linux เรามีไฟล์ คำสั่ง rm ซึ่งจะช่วยให้เราสามารถกำจัดสิ่งที่เป็นประโยชน์ออกจากเครื่องปลายทางได้
"Rm" คือ ตัวย่อของ«ลบ»ซึ่งเป็น«เพื่อกำจัด»ในภาษาอังกฤษ. ใช้ในการลบไฟล์และหากมีการใช้ซ้ำจะทำให้เราสามารถลบไดเร็กทอรีได้ด้วย โดยค่าเริ่มต้นจะไม่ลบไดเรกทอรีและจะลบไฟล์ใด ๆ ที่ระบุในบรรทัดคำสั่ง กระบวนการลบจะยกเลิกการเชื่อมโยงชื่อไฟล์บนระบบไฟล์จากข้อมูลที่เกี่ยวข้องและทำเครื่องหมายพื้นที่เก็บข้อมูลว่าสามารถใช้งานได้สำหรับการเขียนในอนาคต คุณต้องระวังเพราะเมื่อคุณลบบางสิ่งด้วย rm แล้วจะไม่สามารถกู้คืนได้อีกต่อไป
ตัวเลือกสำหรับ rm
-f, -บังคับ |
ละเว้นไฟล์ที่ไม่มีอยู่จริงและอย่าถามก่อนที่จะลบ |
-i | ถามก่อนลบ. |
-I | ถามหนึ่งครั้งก่อนที่จะลบมากกว่าสามไฟล์หรือเมื่อลบซ้ำ |
-เชิงโต้ตอบ[=เมื่อ] | คำถามตาม เมื่อ: ไม่เคยเลยสักครั้ง (-I) หรือเสมอ (-i) ใช่ เมื่อ ไม่ได้ระบุถามได้เสมอ |
- ระบบไฟล์เดียว | เมื่อลบลำดับชั้นแบบวนซ้ำจะละเว้นไดเร็กทอรีใด ๆ ที่อยู่ในไดเร็กทอรีอื่นที่ไม่ใช่ไดเร็กทอรีที่ตรงกับอาร์กิวเมนต์บรรทัดคำสั่ง |
- ไม่มีการสงวนราก | ไม่ปฏิบัติต่อไดเรกทอรีรากด้วยวิธีพิเศษใด ๆ |
- รักษาราก | ไม่ลบไดเร็กทอรีรากซึ่งเป็นลักษณะการทำงานเริ่มต้น |
-r, -R, - เรียกซ้ำ |
ลบไดเรกทอรีและเนื้อหาซ้ำ ๆ |
-d, –Dir |
ลบไดเร็กทอรีว่าง ตัวเลือกนี้ช่วยให้เราสามารถลบไดเร็กทอรีโดยไม่ต้องระบุ -r / -R / –recursive |
-v, –Verbose |
โหมด Verbose; อธิบายตลอดเวลาว่ากำลังทำอะไร |
-ช่วยด้วย | แสดงข้อความช่วยเหลือ |
-version | แสดงข้อมูลเวอร์ชัน |
ตัวอย่างการปฏิบัติ
rm ไม่ลบไดเรกทอรีตามค่าเริ่มต้น. สำหรับสิ่งนี้เราต้องใช้อ็อพชัน -r / -R / –recursive หากไดเร็กทอรีว่างให้ใช้อ็อพชัน n -d / –dir หากเราต้องการลบไฟล์ที่ขึ้นต้นด้วยเครื่องหมายขีด (-) เราต้องเพิ่มเครื่องหมายขีดกลางคู่ (-) ที่แยกจากกันก่อนชื่อไฟล์ หากไม่ได้เพิ่มขีดที่สอง rm อาจตีความชื่อไฟล์ผิดเป็นตัวเลือก ควรจำไว้ว่าเครื่องหมายดอกจัน (*) หมายถึง "ทุกอย่างที่ตรงกัน" โดยเพิ่ม "*" และอยู่หลังเครื่องหมายดอกจันเท่านั้น
ตัวอย่างเช่นในการลบไฟล์« -test.txt »เราจะต้องใช้คำสั่ง
rm -- -prueba.txt
ข้างต้นจะอยู่ในกรณีที่อยู่ในโฟลเดอร์ส่วนตัวของเรา ถ้าไม่เราจะต้องเพิ่มเส้นทางแบบเต็มซึ่งจะเป็นดังนี้:
rm /home/pablinux/Documentos/-file
ความแตกต่างระหว่างสองตัวเลือกคือในกรณีที่สองจะมีเครื่องหมายทับ (/) อยู่ข้างหน้าซึ่งทำให้ตัวเลือกไม่สับสน
ตัวอย่างอื่น ๆ จะเป็น:
- rm -f test-txt: จะลบไฟล์ "test.txt" โดยไม่ถามแม้ว่าจะได้รับการป้องกันก็ตาม
- rm *: มันจะลบไฟล์ทั้งหมดในไดเร็กทอรีที่เราอยู่ออกจากเทอร์มินัล หากมีการป้องกันการเขียนระบบจะถามเราก่อนที่จะลบ
- rm -f *: จะลบทุกอย่างในไดเร็กทอรีโดยไม่ต้องถาม
- rm -i *- จะพยายามลบไฟล์ทั้งหมดในไดเร็กทอรี แต่ขอให้ลบทุกครั้ง
- rm -I *: ตามด้านบน แต่จะขอการยืนยันหากมีไฟล์มากกว่าสามไฟล์เท่านั้น
- rm -r ไดเร็กทอรีโดยที่ "ไดเร็กทอรี" เป็นไดเร็กทอรีเฉพาะ: จะลบไดเร็กทอรี "ไดเร็กทอรี" และไฟล์และไดเร็กทอรีย่อยใด ๆ ที่มีอยู่ หากไฟล์หรือไดเร็กทอรีย่อยใด ๆ ได้รับการป้องกันการเขียนก็จะถาม
- rm -rf ไดเร็กทอรี: เหมือนข้างบน แต่จะไม่ถาม
คำสั่งที่คุณไม่ควรใช้: rm -rf /
และเราจบลงด้วยคำสั่งที่เราสามารถเห็นบนโซเชียลเน็ตเวิร์กเป็นเรื่องตลกมากกว่าสิ่งอื่น คำสั่งดังกล่าว หมายถึง 1- ลบ 2- วนซ้ำให้มากที่สุดและ 3- เริ่มต้นด้วยรูท. เนื่องจากวิธีที่ Linux จัดการกับไดรฟ์มันจะลบเนื้อหาของฮาร์ดไดรฟ์ที่เราเชื่อมต่อกับคอมพิวเตอร์ของเราด้วย ถ้าจะใช้อย่าว่าเราไม่เตือน
ที่น่าสนใจเกี่ยวกับคำชี้แจงเกี่ยวกับคำสั่งสุดท้ายฉันรู้ว่าฉันสามารถลบเนื้อหาทั้งหมดของดิสก์ที่ระบบอยู่ได้ แต่ฉันไม่รู้ว่ามันลบเนื้อหาของดิสก์อื่น ๆ ที่เราเชื่อมต่อด้วย!
ขอบคุณมากโพสต์ของคุณมีประโยชน์มากฉันแก้ปัญหาได้ง่ายมาก แต่ถ้าไม่มีฉันก็จะไม่ประสบความสำเร็จ