GNU/Linux >> Znalost Linux >  >> Linux

Je mv se zástupným znakem stále atomický

Ř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.


Linux
  1. Třídit příkaz v Linuxu s příklady

  2. Začínáme s ls

  3. Vim:Vytvořit soubor pomocí +x Bit?

  1. Upozornění s nftw

  2. Zachování oprávnění k souboru s Git

  3. Vykreslete soubor .gnu pomocí gnuplot

  1. Mají distribuce Linuxu stále význam s kontejnery?

  2. Dd vs Cat – je Dd v dnešní době stále relevantní?

  3. Je MV Atomic na Fs?