Solusi 1:
Mari kita mulai dengan pernyataan bahwa mv
tidak selalu atomik.
Mari kita identifikasi juga bahwa atomisitas mengacu pada konten file, bukan nama file.
Untuk setiap file, pemindahan atau penggantian nama dilakukan oleh mv
bersifat atomik asalkan file tersebut dipindahkan dalam sistem file yang sama. Atomisitas tidak menjamin bahwa file tersebut hanya ada di satu tempat atau lainnya; sangat mungkin file tersebut dapat hadir di sistem file di kedua tempat secara bersamaan untuk "waktu yang singkat". Apa yang dijamin atomisitas, ketika ditawarkan, adalah bahwa konten file tersedia secara instan sepenuhnya dan bukan sebagian. Bisa dibayangkan mv
itu dalam situasi seperti itu dapat diimplementasikan dengan ln
diikuti oleh rm
.
mv
pasti bukan atom ketika perpindahan yang dilakukannya adalah dari satu sistem file ke yang lain, atau ketika sistem file jarak jauh tidak dapat mengimplementasikan mv
operasi secara lokal. Dalam hal ini mv
bisa dikatakan diimplementasikan dengan setara dengan cp
diikuti oleh rm
.
Sekarang, beralih ke pertanyaan tentang atomisitas di banyak file. mv
paling baik hanya atom per file, jadi jika Anda memiliki sejumlah file untuk dipindahkan bersama, implementasinya sedemikian rupa sehingga file tersebut akan dipindahkan satu per satu. Jika Anda suka, mv file1 dir; mv file2 dir; mv file3 dir
.
Jika Anda benar-benar membutuhkan sekelompok file untuk muncul di suatu tujuan secara bersamaan, pertimbangkan untuk meletakkannya di direktori dan pindahkan direktori itu. Objek tunggal ini (direktori) dapat dipindahkan secara atomik.
Solusi 2:
Nomor mv dir1/*
sama dengan mv dir1/file1 && mv dir1/file2 && mv dir1/fileN
. Setiap gerakan individu bersifat atomik, tetapi bukan set lengkap.