Anda dapat menulis file atau aliran input lainnya /dev/null
tetapi tidak ke direktori. Jika Anda mencoba memindahkan direktori ke /dev/null
sana akan melaporkan kesalahan karena /dev/null
bukan direktori tetapi file.
Namun, karena Anda ingin bereksperimen /dev/null
, Anda pertama-tama disarankan untuk mengetahui konsekuensi memindahkan file yang akan ditimpa /dev/null
dan cara memulihkan dari situasi itu:
Seperti yang disarankan oleh @Rmano dalam jawaban untuk pertanyaan itu, untuk bereksperimen dengan /dev/null
kita sebaiknya membuat salinannya dan kemudian melakukan eksperimen kita. Jadi, mari buat /tmp/null
dan gunakan untuk tujuan eksperimen kami:
sudo mknod -m 0666 /tmp/null c 1 3
Sekarang dan seterusnya, /tmp/null
adalah milik kita /dev/null
untuk semua tujuan:
Mari kita buat test_file
dan test_dir
di 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_ubuntu
direktori:
$ 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_file
ke /tmp/null
dan 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_file
tidak lagi tersedia. Sekarang cobalah untuk pindah test_dir
ke /tmp/null
yang tidak berhasil:
$ sudo mv test_dir/ /tmp/null
mv: cannot overwrite non-directory ‘/tmp/null’ with directory ‘test_dir/’
test_dir
masih 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_file
dari /tmp/null
:
$ cat /tmp/null
Let us test if we can recover our test_file.
Jadi, itu masih ada dan /tmp/null
yang merupakan file khusus telah ditimpa dan telah menjadi seperti file normal lainnya. Kami dapat memulihkan file kami dengan menyalin /tmp/null
seperti 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/null
dan 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/null
untuk 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/null
dan 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/null
dan 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/null
akan 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/null
merupakan 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