Автоматическое переименование папок при копировании?
При копировании файлов, когда происходит совпадении имен, система обычно предлагает варианты: заменить файл или скопировать, но с переименованием. Можно ли то же самое сделать при копировании папок? Если при копировании папки "Фото" по месту назначения будет такая же папка "Фото", то папку которую я скопирую автоматически переименуется условно говоря в "Фото-1", тем самым не затронув папку "Фото" по месту назначения. Подойдут любые варианты на системах Windows, Linux, Terminal, CMD или PowerShell.
#!/bin/bash
for f1 in $1/*; do
f2="$2/`basename "$f1"`"
if [ -e "$f2" ]; then
for((i = 0; ; ++i)); do
f3="$f2-$i"
if [ ! -e "$f3" ]; then
f2="$f3"
break
fi
done
fi
cp -a "$f1" "$f2"
done
Сохраняете в файл и запускаете: первый аргумент - папка, содержимое которой копировать, второй аргумент - папка, в которую копировать.
Скриптом на powershell можно. Например генерировать список уже имеющихся папок и сравнивать имя каждой копируемой с ним и переименовывать при совпадении.
Alexey Dmitriev, Было бы намного удобнее учиться на примерах, нежели перебирать кучу вариантов, запутаться и все забыть. Спасибо за ответ. Может быть когда нибудь и попробую.
Болезнь проще предотвратить, чем лечить. Хорошая привычка - создавать папки с текущей датой, при необходимости - со временем создания, например, не "Фото", а "2021-09-21_10-30_Фото_котята" - тогда и проблемы такой не будет.