Команда mv - не перезаписывать файлы

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

Согласно справочной странице mv :

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

нет, выключено
никогда не создавать резервные копии (даже если задано --backup)
пронумеровано, т
делают нумерованные резервные копии
существующие, ноль
нумеруются, если существуют нумерованные резервные копии, просто иначе
просто, никогда
всегда делать простые резервные копии

Я думаю, что хочу использовать опцию «существующий, ноль» ... но я не могу понять, как называть это.

Если моя команда:

mv $src $dest

Как я могу реализовать опцию «существующий, ноль»?

8
задан 23 January 2015 в 21:52

3 ответа

Для включения 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~
6
ответ дан 23 January 2015 в 21:52
mv --backup=t "$src/$file" "$dest"
0
ответ дан 23 January 2015 в 21:52
mv --backup=existing $src $dest

или

mv --backup=nil $src $dest
0
ответ дан 23 January 2015 в 21:52

Другие вопросы по тегам:

Похожие вопросы: