polecenie mv - nie nadpisuj plików

8

Chcę tworzyć mvpliki i nie zastępować duplikatów. -bPrzełącznik sprawia tylko jeden plik kopii zapasowej, a może mam wielu.

Według mvstrony man :

Sufiks kopii zapasowej to „~”, chyba że ustawiono go na --suffix lub SIMPLE_BACKUP_SUFFIX. Metodę kontroli wersji można wybrać za pomocą opcji --backup lub zmiennej środowiskowej VERSION_CONTROL. Oto wartości:

brak, wyłącz
nigdy nie twórz kopii zapasowych (nawet jeśli podano --backup)
numerowanych, t
twórz numerowane kopie
istniejące, zero zero,
jeśli istnieją numerowane kopie, proste inaczej
proste, nigdy nie
twórz prostych kopii zapasowych

Myślę, że chcę użyć opcji „istniejący, zero” ... ale nie mogę wymyślić, jak to nazwać.

Jeśli moim poleceniem jest:

mv $src $dest

Jak mogę wdrożyć opcję „istniejącą, zero”?

Być moim przyjacielem
źródło
Ta odpowiedź ma dobrą odpowiedź na temat używania cpzamiast mv: unix.stackexchange.com/a/9902
Connor Leech

Odpowiedzi:

6

Aby włączyć existinglub nil(lub dowolną z innych opcji), przekaż je jako wartości dla --backupopcji:

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

Ostrzegamy, że nie robi to, co chcesz:

$ 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’

Naprawdę chcesz 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~
muru
źródło
to wydaje się naprawdę tajemnicze. Do czego służy opcja tworzenia kopii zapasowej?
Connor Leech
1
@ ConnorLeech, aby kontrolować ustawienia kopii zapasowej?
muru
0
mv --backup=existing $src $dest

lub

mv --backup=nil $src $dest
Florian Diesch
źródło
Po wielu próbach uruchomiłem składnię - ale opcja zero nie działała. --backup = t robi to. DZIĘKI!
BeMy Friend
0
mv --backup=t "$src/$file" "$dest"
Być moim przyjacielem
źródło
po szczegóły patrzman mv
Starszy Geek