Mengapa ruang kosong di partisi sumber tidak berubah selama "mv"?

13

Saya menjalankan mvuntuk memindahkan direktori (yang berisi banyak file) dari satu partisi ke partisi lain. Sementara mvmemindahkan file individual dalam direktori satu per satu, saya perhatikan bahwa ukuran ruang bebas dari partisi sumber tidak berubah, sementara ukuran ruang bebas dari partisi tujuan menurun.

Mengapa ini bekerja seperti itu, bukannya jumlah ukuran ruang bebas dari partisi sumber dan tujuan tetap sama?

Tim
sumber

Jawaban:

16

Seperti yang didefinisikan POSIX, mv akan menduplikasi file sumber ke jalur tujuan, dan jika tidak ada yang salah, file sumber akan dihapus:

  1. Hirarki file yang di-root di source_file harus diduplikasi sebagai hierarki file yang di-root di path tujuan

  2. Hirarki file yang di-root pada source_file harus dihapus. Jika ini gagal karena alasan apa pun, mv harus menulis pesan diagnostik ke kesalahan standar, jangan melakukan apa-apa lagi dengan source_file saat ini, dan lanjutkan ke source_files yang tersisa.

Jika Anda pindah pada sistem file yang sama, Anda hanya memindahkan entri dari satu lokasi di sistem file ke yang lain.

Itu dijamin bahwa Anda tidak akan kehilangan file sumber jika kesalahan terjadi selama proses pemindahan.

cuonglm
sumber
16

Itu menjadi konservatif dan tidak menghapus file sampai salinan berhasil. Ini membuatnya lebih mudah untuk pulih jika terjadi kesalahan.

Hildred
sumber
tetapi dir memiliki banyak file
Tim
7
@Tim: Itu tidak mulai menghapus file sumber sampai semua file telah digandakan pada volume tujuan. Jika Anda membutuhkan file untuk dipindahkan satu per satu, sehingga tidak pernah ada lebih banyak ruang "ekstra" yang digunakan daripada file terbesar, Anda perlu membuat loop untuk melakukan ini.
Warren Young
4
Pernahkah Anda melakukan langkah di MS-Windows, dan sekitar setengah jalan melalui langkah, ada yang salah. Sumber dan tujuan berantakan, dan Anda harus memperbaikinya. Jika Anda bukan pecandu makan malam, maka Anda mungkin hanya menghapus keduanya, dan belajar untuk tidak melakukannya lagi.
ctrl-alt-delor