команда mv - не перезаписуйте файли


8

Я хочу mvфайли, а не перезаписи дублікатів. -bПеремикач робить тільки один резервний файл, в той час як у мене може бути багато.

За даними mvсторінки людини :

Суфікс резервного копіювання - "~", якщо не встановлено значення --suffix або SIMPLE_BACKUP_SUFFIX. Спосіб управління версіями може бути обраний за допомогою параметра --backup або через змінну середовища VERSION_CONTROL. Ось значення:

немає, вимкнено
ніколи не створюйте резервні копії (навіть якщо - резервне копіювання)
пронумеровано, t
зробіть нумеровані резервні копії
, нульові
нумеровані, якщо існують нумеровані резервні копії, прості в іншому випадку
прості, ніколи не
робіть простих резервних копій.

Я думаю, що я хочу використовувати "існуючий, нульовий" варіант ... але я не можу зрозуміти, як це викликати.

Якщо моя команда:

mv $src $dest

Як я можу реалізувати "існуючий, нульовий" варіант?


Ця відповідь дає хорошу відповідь щодо використання cpзамість mv: unix.stackexchange.com/a/9902
Connor Leech

Відповіді:


6

Щоб увімкнути existingабо nil(або будь-який з інших параметрів), передайте їх як значення для --backupпараметра:

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

Попереджуйте, що це не робить те, що ви хочете:

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

Ви насправді хочете 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~

це здається справді криптовалютним. Для чого варіант резервного копіювання?
Коннор Ліч

1
@ConnorLeech для керування налаштуваннями резервного копіювання?
муру

0
mv --backup=existing $src $dest

або

mv --backup=nil $src $dest

Після багатьох спроб синтаксис працював - але параметр "нуль" не спрацював. --backup = t робить, хоча. ДЯКУЮ!
BeMy Friend

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.