Ваша оригінальна команда може бути переписана як:
find . -type f -exec bash -c 'test -e /target-directory/"$1" || cp "$1" /target-directory' sh {} \;
Ключовим тут є те, що ми викликаємо оболонку з певними командами і передаємо знайдений файл як $1
аргумент. Якщо test -e /target-directory/"$1"
не вдалося, це означає, що файл не існує, і в цьому випадку cp
буде скопійовано файл.
Загалом, можна використовувати інші команди, доки команда може перевірити наявність файлу. Деякі з інших варіантів:
/usr/bin/realpath -e /target-directory/"$1" > /dev/null || cp "$1" /target-directory
stat >/dev/null /target-directory/"$1" || cp "$1" /target-directory/"$1"