Řešení 1:
Začněme prohlášením, že mv není vždy atomární.
Identifikujme také, že atomicita odkazuje na obsah souboru, nikoli na název souboru.
U každého jednotlivého souboru přesun nebo přejmenování provede mv je atomický za předpokladu, že je soubor přesouván v rámci stejného souborového systému. Atomicita nezaručuje, že soubor je pouze na jednom nebo druhém místě; je docela možné, že soubor by mohl být přítomen v souborovém systému na obou místech současně "krátkou dobu". Co atomicita zaručuje, když je nabízena, je, že obsah souboru je okamžitě k dispozici zcela a ne částečně. Můžete si představit, že mv v takových situacích mohl být implementován pomocí ln následuje rm .
mv rozhodně není atomický, když přesun, který provádí, je z jednoho souborového systému do druhého, nebo když vzdálený souborový systém nemůže implementovat mv provoz lokálně. V těchto případech mv dalo by se říci, že je implementován ekvivalentem cp následuje rm .
Nyní přejdeme k otázce atomicity ve více souborech. mv je v nejlepším případě atomický pouze na soubor, takže pokud máte několik souborů k přesunutí dohromady, implementace je taková, že se budou přesouvat jeden po druhém. Pokud chcete, mv file1 dir; mv file2 dir; mv file3 dir .
Pokud opravdu potřebujete, aby se v cílovém umístění objevila skupina souborů současně, zvažte jejich umístění do adresáře a přesunutí tohoto adresáře. Tento jediný objekt (adresář) lze přesunout atomicky.
Řešení 2:
č. mv dir1/* je stejný jako mv dir1/file1 && mv dir1/file2 && mv dir1/fileN . Každý jednotlivý pohyb je atomický, ale ne celá sada.