снимок экрана терминала

Как скопировать все файлы .aze с различным содержимым в folder3? На экране показывают, что я не хочу делать. То, что я хочу приблизиться, это иметь в папке 3 файл1(1).aze и файл1(2).aze (и другие .aze)

Я хочу две версии file1.aze в папке 3.

я использую

find -name "*.aze" -exec cp {} folder3/ \;

Я попытался добавить --parents но он также сохранил файл с таким же содержимым и тем же именем. (Я хочу только одну копию каждой версии.)

1 ответ1

1

Мне не ясно, каков твой желаемый результат. Вы хотите, чтобы и folder1/file1.aze и folder2/file1.aze непосредственно в folder3?

`-folder3
  +-file1.aze        # <-- from folder1
  `-file1.aze        # <-- from folder2

Это невозможно без переименования хотя бы одного из файлов. Примерно так может работать для переименования файлов с порядковыми номерами:

#!/bin/bash

extension=".aze"
filename="$(basename "$1")"
basename="$(basename "$1" "$extension")"
dst="folder3"

[ "$(dirname "$1")" == "$dst" ] && exit 0

n=0
while [ -f "$dst/$filename" ]; do
  filename="${basename}($((++n)))$extension"
done

cp "$1" "$dst/$filename"

Запустите это так:

find -name "*.aze" -exec ./filecopy.sh {} \;

Чего вы хотите добиться в любом случае? Для хранения нескольких версий одного и того же файла лучше использовать систему контроля версий, такую как Subversion, Mercurial или git.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .