-1

В моем предыдущем вопросе я пытался поместить все мои файлы в папки и подпапки. Теперь я могу с командой:

 find MainFolder -type f -exec mv \{\} FinalFolder \;

Теперь я хотел бы избежать перезаписи. Является ли это возможным?

Благодарю.

2 ответа2

1

-n для mv - это то, что вам нужно. Из справочной страницы:

-n, --no-clobber не перезаписывать существующий файл

Включение этого в ваш скрипт поиска приводит к следующему:

find MainFolder -type f -exec mv -n \{\} FinalFolder \;
0

Рецепт mv может перезаписывать файлы, если у вас есть два или более, у которых есть конфликт имен. Если вы хотите избежать этого, вы можете добавить номера версий, используя команду cp вместо mv.

find MainFolder -type f -exec cp --backup=numbered \{\} FinalFolder \;

Тогда ваши дубликаты файлов будут иметь номера в фигурных скобках в качестве номеров версий, добавленных к ним, если они сталкиваются

Если cp продолжает запрашивать подтверждения, это может быть связано с тем, что команда cp имеет псевдоним cp -i перед безопасностью. Общая инициализация. В этом случае используйте /bin/cp вместо cp

Исходная структура каталогов все еще будет там после запуска. Если ты не хочешь этого. просто rm -rf MainFolder когда вы уверены, что с ним покончено

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