find
можно найти только локальные файлы. Итак, запустите find
на удаленном сервере, что-то вроде:
ssh username@server.xyz.com find /path-from-which-files-need-to-be-copied/ -type f -ctime -1 |
xargs -ILIST scp username@server.xyz.com:LIST /Users/abcUser/Documents/test/
Обратите внимание, что xargs
по умолчанию анализирует \
и цитирует его по-своему. Лучший способ передать результат find
- это использовать поток с нулевым завершением:
ssh username@server.xyz.com find /path-from-which-files-need-to-be-copied/ -type f -ctime -1 -print0 |
xargs -0 -ILIST scp username@server.xyz.com:LIST /Users/abcUser/Documents/test/
Но xargs
будет запускать отдельный сеанс scp
для каждого файла, который будет очень медленным. Так что оптимизируйте его, запустив один scp
для всех файлов, я думаю, вы могли бы сделать это примерно так:
ssh username@server.xyz.com find /path-from-which-files-need-to-be-copied/ -type f -ctime -1 -printf 'username@server.xyz.com:%p\\0' |
xargs -0 sh -c 'scp "$@" "$0"' /Users/abcUser/Documents/test/