Entri direktori hanyalah penunjuk ke inode. Inode berisi informasi meta tentang file (selain nama), dan penunjuk ke data file (jika ada). Saat Anda mulai menyalin file, Anda mendapatkan pegangan ke inode.
Sistem operasi mempertahankan jumlah referensi ke inode. Selama ada referensi ke inode, inode dan data file disimpan. Setelah semua referensi ke inode dihapus, inode dihapus dan ruang yang dibutuhkan oleh file dilepaskan.
Saat Anda membuka file untuk disalin, itu akan disimpan sampai proses Anda menutup file. Ini akan terjadi saat transfer file selesai, dan akan terjadi jika proses penyalinan gagal. Jika transfer file gagal di tengah jalan dan Anda telah menghapus semua tautan keras ke file tersebut, Anda tidak akan berhasil memulai ulang transfer.
EDIT:Seperti yang telah dicatat orang lain, pemindahan file pada perangkat yang sama dilakukan tanpa memindahkan data. Alih-alih entri direktori baru dibuat di direktori tujuan, dan entri direktori asli dihapus.
Dimungkinkan untuk memiliki banyak entri direktori untuk file yang sama. Ini disebut tautan keras. Mereka dibuat dengan membuat entri direktori baru untuk file tanpa menghapus entri aslinya. Inode sistem file memiliki jumlah referensi untuk mencatat jumlah entri direktori yang menunjuk ke file.
EDIT2:Jika proses macet atau dimatikan, file akan dihapus dengan bersih karena jumlah akses memori akan dikurangi menjadi nol. Ini adalah tindakan yang terjadi saat program berakhir secara normal.
Jika terjadi kegagalan daya atau pematian sistem yang tidak teratur lainnya, disk akan memerlukan fsck
(pemeriksaan sistem file) sebelum dapat dipasang sepenuhnya. Bergantung pada status inode pada disk dan struktur direktori, ruang akan dipulihkan, file akan tetap berada di direktori, atau entri baru akan dibuat di lost+found
direktori. Hasilnya akan bergantung pada perubahan mana yang telah dibilas ke disk atau ditulis ke jurnal sistem file.
Seperti yang dijelaskan oleh Matt Jenkins, OS (sistem file) melacak file yang tetap dibuka oleh aplikasi. Selama suatu proses membuat file tetap terbuka, datanya tetap berada di disk (meskipun telah dihapus dan tidak lagi terlihat atau dapat diakses oleh program lain.
Perhatikan bahwa konsekuensi dari ini adalah ruang yang ditempati oleh file hanya dapat diambil kembali setelah proses terakhir yang menggunakannya telah menutupnya. Itu adalah FAQ untuk operasi sistem file Linux/Unix:"perintah 'df' mengatakan partisi sudah penuh, sementara 'du' melaporkan ruang kosong" (lihat misalnya http://batleth.sapienti-sat.org/projects/FAQs/ext3- faq.html ). Jika Anda perlu mengosongkan ruang, tidak cukup hanya dengan menghapus file besar (mis. file log), Anda juga harus memastikan tidak ada proses yang membuatnya tetap terbuka (biasanya masalah dengan file log).
Sebenarnya cukup sederhana. File menyimpan daftar referensi - proses yang mengakses file. Ketika Anda menghapus file, itu hanya menghapus daftar dari direktori tetapi bukan file itu sendiri. Program yang masih membuka file masih dapat mengaksesnya. File tersebut hanya benar-benar dihapus ketika semua program yang mengaksesnya menutupnya.
Selain itu, dengan memindahkan file - jika berada dalam sistem file yang sama - file tidak benar-benar bergerak, itu hanya mengubah penunjuk ke direktori tempat file berada.