GNU/Linux >> Linux Esercitazione >  >> Linux

È mv con carattere jolly ancora atomico

Soluzione 1:

Iniziamo con l'affermazione che mv non è sempre atomico.

Identifichiamo anche che l'atomicità si riferisce al contenuto del file, non al nome del file.

Per ogni singolo file, lo spostamento o la ridenominazione eseguita da mv è atomico a condizione che il file venga spostato all'interno dello stesso filesystem. L'atomicità non garantisce che il file sia solo in un posto o nell'altro; è del tutto possibile che il file possa essere presente nel filesystem in entrambi i posti contemporaneamente per "un breve periodo". Ciò che l'atomicità garantisce, quando offerto, è che i contenuti del file siano istantaneamente disponibili in modo completo e non parziale. Puoi immaginare quel mv in tali situazioni avrebbe potuto essere implementato con ln seguito da rm .

mv non è sicuramente atomico quando lo spostamento che esegue è da un filesystem a un altro, o quando un filesystem remoto non può implementare il mv operazione in locale. In questi casi mv si potrebbe dire che sia implementato dall'equivalente di un cp seguito da rm .

Passiamo ora alla questione dell'atomicità su più file. mv è nella migliore delle ipotesi atomico solo per file, quindi se hai un numero di file da spostare insieme, l'implementazione è tale che verranno spostati uno alla volta. Se vuoi, mv file1 dir; mv file2 dir; mv file3 dir .

Se hai davvero bisogno che un gruppo di file appaia contemporaneamente in una destinazione, considera di inserirli in una directory e di spostare quella directory. Questo singolo oggetto (la directory) può essere spostato atomicamente.

Soluzione 2:

No. mv dir1/* è uguale a mv dir1/file1 && mv dir1/file2 && mv dir1/fileN . Ogni singola mossa è atomica, ma non il set completo.


Linux
  1. Dd Vs Cat - Dd è ancora rilevante in questi giorni?

  2. Vim:creare file con +x bit?

  3. Mv Atomic è sulle F?

  4. Permessi dei file in Linux con esempio

  5. Avviso con nftw

Comando Tail Linux con esempi

Comando Linux WC con esempi

Trova i file persi con Scalpel

Firme digitali con GnuPG

Sto ancora lavorando con le scatole degli gnomi

Comportamento di rsync con il file che è ancora in fase di scrittura?