
Я пытаюсь найти и переместить некоторые файлы из/home/user/fol1к/home/user/fol2.
Обычно я бы использовал
find . -type f -name "abc*" -exec mv -t "/path/to/foo/bar" {} +
но это перезаписывает файлы с такими же именами, которые уже присутствуют в/путь/к/foo/bar.
Я хочу, чтобы он пропускал файлы, если они уже там присутствуют.
Если для этого требуется цикл, мне также нужен вывод, либо простой вывод на оболочке, либо в файле журнала.
Есть идеи?
решение1
Вы можете использовать n
опцию:
find . -type f -name "abc*" -exec mv -nt "/path/to/foo/bar" "{}" +
От man mv
:
-n, --no-clobber
do not overwrite an existing file
решение2
Я использую Mac Terminal, и эта команда дает хороший результат:
find FIle_Origin -type f -name "Имя_файла" -exec mv {} Место_назначения_файла/ ;