ถ้าฉันทำ: touch file; mv file /dev/nullเป็นราก/dev/nullหายไป ls -lad /dev/nullส่งผลให้ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว แบ่งการใช้งานนี้ซึ่งขึ้นอยู่กับ/dev/nullเช่น SSH mknod /dev/null c 1 3; chmod 666 /dev/nullและสามารถแก้ไขได้โดยการทำ ทำไมการย้ายไฟล์ปกติไปยังไฟล์พิเศษนี้ส่งผลให้หายไป/dev/null?
เพื่อชี้แจงนี่คือเพื่อวัตถุประสงค์ในการทดสอบและฉันเข้าใจว่าmvคำสั่งทำงานอย่างไร สิ่งที่ฉันอยากรู้คือทำไมls -la /dev/nullก่อนที่จะแทนที่ด้วยไฟล์ปกติจะแสดงผลลัพธ์ที่คาดหวัง แต่หลังจากนั้นมันก็แสดงว่า/dev/nullไม่มีอยู่แม้ว่าไฟล์นั้นจะถูกสร้างขึ้นผ่านmvคำสั่งดั้งเดิมและคำสั่ง file แสดงข้อความ ASCII ฉันคิดว่านี่ต้องเป็นการรวมกันของlsพฤติกรรมคำสั่งร่วมกับdevfsเมื่อไฟล์ที่ไม่ใช่พิเศษมาแทนที่อักขระ / ไฟล์พิเศษ นี่คือบน Mac OS X พฤติกรรมอาจแตกต่างกันไปตามระบบปฏิบัติการอื่น
rmคำสั่ง
devfsเป็นเรื่องตลกเกี่ยวกับไฟล์ปกติ แปลกที่คุณไม่ได้รับข้อผิดพลาดจากmvแม้ว่า วิธีการเกี่ยวกับวิธีนี้touch testfile; mv testfile /dev?
mvสามารถปรมาณูได้ในระบบไฟล์เดียวกันเท่านั้น
/dev/nullจะไม่ยุ่งกับ