ถ้าฉันทำ: 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
จะไม่ยุ่งกับ