comando mv - non sovrascrivere i file


8

Voglio mvfile e non sovrascrivere i duplicati. L' -binterruttore crea solo un singolo file di backup, mentre potrei averne molti.

Secondo la mvpagina man :

Il suffisso di backup è '~', a meno che non sia impostato con --suffix o SIMPLE_BACKUP_SUFFIX. Il metodo di controllo della versione può essere selezionato tramite l'opzione --backup o tramite la variabile di ambiente VERSION_CONTROL. Ecco i valori:

nessuno, off
non esegue mai i backup (anche se viene fornito il backup)
numerato, t
rende i backup numerati
esistenti, zero
numerati se esistono backup numerati, semplici altrimenti
semplici, mai
sempre semplici backup

Penso di voler usare l'opzione "esistente, zero" ... ma non riesco a capire come chiamarlo.

Se il mio comando è:

mv $src $dest

Come posso implementare l'opzione "esistente, zero"?


Questa risposta ha una buona risposta sull'uso cpinvece di mv: unix.stackexchange.com/a/9902
Connor Leech,

Risposte:


6

Per abilitare existingo nil(o una delle altre opzioni), passali come valori per l' --backupopzione:

mv --backup=existing "$src" "$dest"
mv --backup=nil "$src" "$dest"

Tieni presente che questo non fa ciò che vuoi:

$ mkdir foo bar
$ cp blah/* foo
$ cp blah/* bar
$ mv --backup=nil bar/* foo/* -t blah
mv: will not overwrite just-created ‘blah/a.jpg’ with ‘foo/a.jpg’
mv: will not overwrite just-created ‘blah/b.ogv’ with ‘foo/b.ogv’
mv: will not overwrite just-created ‘blah/cd ef.JpG’ with ‘foo/cd ef.JpG’

In realtà vuoi numbered/ t:

$ mv --backup=numbered bar/* foo/* -t blah
$ ls blah 
a.jpg  a.jpg.~1~  a.jpg.~2~  b.ogv  b.ogv.~1~  b.ogv.~2~  cd ef.JpG  cd ef.JpG.~1~  cd ef.JpG.~2~

sembra davvero enigmatico. A cosa serve l'opzione di backup?
Connor Leech,

1
@ConnorLeech per controllare le impostazioni di backup?
muru,

0
mv --backup=existing $src $dest

o

mv --backup=nil $src $dest

Dopo molti tentativi, ho fatto funzionare la sintassi, ma l'opzione zero non ha funzionato. --backup = t lo fa. GRAZIE!
BeMy Friend,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.