В моем предыдущем вопросе я пытался поместить все мои файлы в папки и подпапки. Теперь я могу с командой:
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
когда вы уверены, что с ним покончено