A solução mais fácil seria fazer a cópia mais tarde:
#!/bin/bash
# something something script stuff
[ ! -f somefile ] && exit 1
find something -type f -newer somefile -exec cp {} . ';'
Se você deseja que o usuário confirme cada cópia, use -ok
em vez de -exec
em find
:
find something -type f -newer somefile -ok cp {} . ';'
Primeiro, faça um loop sobre o arquivo para criar uma lista de arquivos a serem copiados, solicitando ao usuário a entrada de cada arquivo, e então execute a cópia:
copy_these=$(mktemp)
find something -type newer somefile \
-exec bash -c '
read -p "Copy $0? [y/n/q]: "
case "$REPLY" in
[yY]*) printf "%s\n" "$0" ;;
[qQ]*) exit 1 ;;
esac' {} ';' >"$copy_these"
# do other stuff
# then copy the files
xargs cp -t . <"$copy_these"
rm -f "$copy_these"
Observe que isso pressupõe que todos os nomes de arquivos sejam bem comportados (sem novas linhas) e que o GNU cp
seja usado.