На окнах OS при копировании файла в каталог, который уже имеет файл с тем именем, это спрашивает Вас, хотите ли Вы:
Когда я делаю это в Ubuntu, у меня нет той 3-й опции (который является большим количеством времен очень полезная опция). Там какой-либо путь состоит в том, чтобы смочь сделать это в Ubuntu?
К сожалению, Наутилус не имеет той опции.
Вы могли попробовать другой файловый менеджер как дельфин.
(требует репозитория Вселенной),
Можно также использовать программу командной строки cp(1)
с резервной опцией:
cp --backup -t DESTINATION SOURCE [SOURCE...]
Это имеет следующие эффекты, которыми можно управлять с другими опциями, как описано в странице руководства cp(1)
:
--backup[=CONTROL]
― сделайте резервное копирование каждого существующего целевого файла
-b
― как--backup
но не принимает аргумент
-S
,--suffix=SUFFIX
― переопределите обычный резервный суффиксРезервный суффикс
~
, если не установлено с--suffix
илиSIMPLE_BACKUP_SUFFIX
. Метод управления версиями может быть выбран через--backup
опция или черезVERSION_CONTROL
переменная среды. Вот значения:
none
,off
: никогда не делайте резервные копии (даже если--backup
дан),numbered
,t
: сделайте пронумерованные резервные копииexisting
,nil
: пронумерованный, если пронумерованные резервные копии существуют, простые иначеsimple
,never
: всегда делайте простые резервные копии
cp --backup=existing --suffix=.orig -t ~/Videos ~/Music/*
Это скопирует все файлы в ~/Music
кому: ~/Videos
. Если файл того же имени существует в месте назначения, это переименовано путем добавления .orig
к его имени как резервное копирование. Если файл с тем же именем как резервное копирование существует, резервное копирование вместо этого переименовано путем добавления .1
и если это существует также .2
и т.д. Только затем исходный файл, скопированный в место назначения.
Если Вы хотите скопировать файлы в подкаталогах, рекурсивно используйте:
cp -R --backup=existing --suffix=.orig -t ~/Videos ~/Music
Найденный этим на суперпользователе :
#!/bin/bash
cp -vn "$1" "$2"/ || cp -vn "$1" "$2"/"${1##*/}"~"$(md5sum "$1" | cut -f1 -d' ')"
файл, который имеет то же имя, переименован в файл с md5sum, добавленным к имени. При сохранении его к имени файла как "saveCopy", можно использовать find
как это для выполнения его:
find . -name 'z*.jpg' -exec ./saveCopy {} /tmp/Extracted/ \;
Для больше на этом см. ссылку.
Было решение (ультракопировальное устройство) к этому вопросу на этом форуме прежде: см. https://ubuntuforums.org/showthread.php? t=2251859 Согласно тому обсуждению, это может eb, интегрированный в Наутилус.
Скопируйте этот скрипт в верхний каталог, сделайте его исполняемым и запустите:
#!/bin/bash
## Get a list of all files
list=$(find . -mindepth 2 -type f -print)
nr=1
## Move all files that are unique
find . -mindepth 2 -type f -print0 | while IFS= read -r -d '' file; do
mv -n $file ./
done
list=$(find . -mindepth 2 -type f -print)
## Checking which files need to be renamed
while [[ $list != '' ]] ; do
##Remaming the un-moved files to unique names and move the renamed files
find . -mindepth 2 -type f -print0 | while IFS= read -r -d '' file; do
current_file=$(basename $file)
mv -n $file "./${nr}${current_file}"
done
## Incrementing counter to prefix to file name
nr=$((nr+1))
list=$(find . -mindepth 2 -type f -print)
done