Anda dapat menulis file atau aliran input lainnya /dev/nulltetapi tidak ke direktori. Jika Anda mencoba memindahkan direktori ke /dev/nullsana akan melaporkan kesalahan karena /dev/nullbukan direktori tetapi file.
Namun, karena Anda ingin bereksperimen /dev/null, Anda pertama-tama disarankan untuk mengetahui konsekuensi memindahkan file yang akan ditimpa /dev/nulldan cara memulihkan dari situasi itu:
Seperti yang disarankan oleh @Rmano dalam jawaban untuk pertanyaan itu, untuk bereksperimen dengan /dev/nullkita sebaiknya membuat salinannya dan kemudian melakukan eksperimen kita. Jadi, mari buat /tmp/nulldan gunakan untuk tujuan eksperimen kami:
sudo mknod -m 0666 /tmp/null c 1 3
Sekarang dan seterusnya, /tmp/nulladalah milik kita /dev/nulluntuk semua tujuan:
Mari kita buat test_filedan test_dirdi dalam direktori bernama ask_ubuntu.
$ mkdir ask_ubuntu
$ cd ask_ubuntu
$ touch test_file
$ mkdir test_dir
$ echo "Let us test if we can recover our test_file." > test_file
Berikut ini menunjukkan isi ask_ubuntudirektori:
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:10 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
-rw-r--r-- 1 aditya aditya 0 Mar 18 17:10 test_file
Sekarang cobalah untuk pindah test_fileke /tmp/nulldan melihat isi ask_ubuntu:
$ sudo mv test_file /tmp/null # This succeeds
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:12 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
Perintah berhasil dan test_filetidak lagi tersedia. Sekarang cobalah untuk pindah test_dirke /tmp/nullyang tidak berhasil:
$ sudo mv test_dir/ /tmp/null
mv: cannot overwrite non-directory ‘/tmp/null’ with directory ‘test_dir/’
test_dirmasih ada di dalam ask_ubuntu:
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:12 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
Sekarang, mari kita bayangkan jika kita dapat memulihkan test_filedari /tmp/null:
$ cat /tmp/null
Let us test if we can recover our test_file.
Jadi, itu masih ada dan /tmp/nullyang merupakan file khusus telah ditimpa dan telah menjadi seperti file normal lainnya. Kami dapat memulihkan file kami dengan menyalin /tmp/nullseperti file lainnya:
$ cp /tmp/null our_test_file
$ cat our_test_file
Let us test if we can recover our test_file.
File pulih.
catatan:
Jika Anda tidak membuat /tmp/nulldan mencoba perintah-perintah itu secara langsung menggunakan /dev/null; pastikan Anda memulihkan file (jika perlu) dengan menjalankan cp /dev/null our_test_file; dan pulihkan /dev/nulluntuk keperluan yang ada pada sistem kami dengan menjalankan perintah berikut sebagaimana diberikan dalam pertanyaan terkait secepatnya:
$ sudo rm /dev/null
$ sudo mknod /dev/null c 1 3
$ sudo chmod 666 /dev/null
Kesimpulan:
Jadi, tidak mungkin untuk memindahkan direktori ke /dev/nulldan karenanya tidak ada pertanyaan untuk memulihkan direktori dari sana.
Sejauh menyangkut file, jika Anda langsung memindahkan file ke /dev/null, Anda masih dapat memulihkannya seperti yang ditunjukkan di atas. Namun, ada dua pengecualian:
Selama periode Anda menjalankan sudo mv test_file /dev/nulldan cp /dev/null our_test_file, jika ada script root dalam sistem menimpanya dengan menjalankan echo "Whatever text the root script wants to send to /dev/null" > /dev/null(atau perintah serupa lainnya). Maka kita tidak memiliki cara mudah untuk memulihkan file kita.
Jika Anda me-reboot sistem antara menjalankan kedua perintah itu. /dev/nullakan dibuat ulang saat boot, sehingga file kami hilang saat kami mematikan komputer.
Tetapi jika Anda ingin memulihkan aliran input seperti echo "Stream this line to /dev/null" > /dev/null, Anda tidak dapat memulihkan bahwa karena /dev/nullmerupakan file khusus untuk membuang file yang tidak diinginkan dan input stream dan seperti yang disebutkan dalam artikel Wikipedia, artikel ini tidak menyediakan data apa pun untuk proses yang membaca dari itu.
Referensi: Artikel Wikipedia pada/dev/null