Файлы копии с переименованием

Заполнение клавишей Tab. Как плохо это высосало бы, если бы необходимо было вывести все символы каждого пути?

28
12.08.2016, 06:13
3 ответа

Много инструментов GNU такой как cp, mv и tar поддержка, создающая файлы резервных копий, когда цель существует. Таким образом, при копировании foo кому: bar, если уже существует названный файл bar, существующее bar будет переименован, и после копии bar будет содержать содержание foo. По умолчанию, bar переименован к bar~, но поведение может быть изменено:

                                # If a file foo exists in the target, then…
cp -r --backup source target    #   rename foo → foo~
cp -r --backup=t source target  #   rename foo → foo.~1~ (or foo.~2~, etc)

Существуют другие варианты, такие как создание пронумерованных резервных копий только, когда каждый уже существует. Дополнительную информацию см. в coreutils руководстве.

41
27.01.2020, 19:39
  • 1
    Brilliant. Я не знал, что эта опция существовала, и это просто оказалось чрезвычайно полезным. Спасибо @Gilles. –  Steve Hill 27.05.2015, 13:52
  • 2
    OSX cp не имеет - резервный флаг. использовать brew install coreutils и затем используйте команду gcp вместо этого. –  Weston Ganger 21.03.2016, 21:50

Я попробовал

apropos copy | grep "(1)" 

найти возможных кандидатов и mcopy обнаружилось.

man mcopy 

показывает многообещающий вариант -D clash-option разве это не прохладно? Но не настолько прохладное - это не описано. Но существуют некоторые подсказки к mtools.dvi, который я искал в своей системе, без успеха, и через Google, без успеха, но затем, с Google, я искал непосредственно mcopy clash-option и найденный этим сайтом.

Я сделал короткий тест

mcopy -D A f* a 

к тестам для автопереименовывают и targetdir a - вместо того, чтобы автопереименовать его спросил меня, чтобы каждый файл проигнорировал или переопределил, что глупый s....

Моя версия mtools-4.0.10 и страница справки с 1996 - 15 лет. Должны мы действительно потеряли некоторые функции, между тем?

Я разделил бы работу на два шага:

  • Сделайте короткую функцию, которая генерирует уникальное имя для файла, если то имя занято.
  • Выполненный find, и выполните тот сценарий для каждого файла, который Вы хотите скопировать.

Мы поможем в этом подходе?:)

Вот сценарий, для автопереименовывания файлов:

#!/bin/bash

name=$1
target=$2

autorename () {
name=$1
target=$2
no=$3 

test -e ${target}/${name}.$no && autorename ${name} ${target} $((no+1)) || cp ${name} ${target}/${name}.$no 

}

test -e ${target}/${name} && autorename ${name} ${target} 0 || cp ${name} ${target} 

и это - мой тестовый вызов:

find -maxdepth 1 -name "fo*" -type f -exec ./autorename.sh {} /mnt/hidden/test/a ";"

Примечание:-maxdepth, - имя и - вводят, где используется ограничить количество затронутых файлов существенно. Я не протестировал сценарий на более глубокие файловые структуры, ни на пробелы в именах файлов и другом, броских символах как перевод строки, pagefeed и так далее.

Я использовал.1, потому что это не создает неприятности в большинстве команд, в то время как (и a) часто нуждаются в маскировании.

6
27.01.2020, 19:39

Не с GNU cp, по крайней мере.

Вам настоятельно рекомендуют не иметь названия дубликата файла (игнорирующий регистр), они просто вызовут Вас мир боли. Найдите список такого использования дубликатов

find . | tr A-Z a-z | sort | uniq -d

Затем вручную переименуйте один из файлов для каждой строки, если произведено. Постарайтесь не создавать дубликаты в будущем.

0
27.01.2020, 19:39
  • 1
    парень, никогда не подразумевал, что он - тот, который создал ту путаницу. –  tshepang 14.07.2011, 17:10
  • 2
    Ну, да, верный, но он - тот, перенося последствия  –  jmtd 15.07.2011, 14:02
  • 3
    у меня есть ситуация, где я закончил с резервными копиями с немного отличающихся времен. Хочу объединить их, но не ударить различные версии. Например, кто знает, более старый мог бы быть лучше. Может только сказать после того, как я исследую. Тем временем, должен скопировать и переименовать резервные копии. –  abalter 06.07.2017, 22:11

Теги

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