В моем предыдущем вопросе я пытался поместить все мои файлы в папки и подпапки. Теперь я могу с командой:
find MainFolder -type f -exec mv \{\} FinalFolder \;
Теперь я хотел бы избежать перезаписи. Является ли это возможным?
Благодарю.
В моем предыдущем вопросе я пытался поместить все мои файлы в папки и подпапки. Теперь я могу с командой:
find MainFolder -type f -exec mv \{\} FinalFolder \;
Теперь я хотел бы избежать перезаписи. Является ли это возможным?
Благодарю.
-n для mv - это то, что вам нужно. Из справочной страницы:
-n, --no-clobber не перезаписывать существующий файл
Включение этого в ваш скрипт поиска приводит к следующему:
find MainFolder -type f -exec mv -n \{\} FinalFolder \;
Рецепт mv может перезаписывать файлы, если у вас есть два или более, у которых есть конфликт имен. Если вы хотите избежать этого, вы можете добавить номера версий, используя команду cp вместо mv.
find MainFolder -type f -exec cp --backup=numbered \{\} FinalFolder \;
Тогда ваши дубликаты файлов будут иметь номера в фигурных скобках в качестве номеров версий, добавленных к ним, если они сталкиваются
Если cp продолжает запрашивать подтверждения, это может быть связано с тем, что команда cp имеет псевдоним cp -i перед безопасностью. Общая инициализация. В этом случае используйте /bin/cp вместо cp
Исходная структура каталогов все еще будет там после запуска. Если ты не хочешь этого. просто rm -rf MainFolder когда вы уверены, что с ним покончено