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”?


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~

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

Po wielu próbach uruchomiłem składnię - ale opcja zero nie działała. --backup = t robi to. DZIĘKI!
BeMy Friend

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.