Я пытаюсь скопировать измененные файлы в Godaddy через SSH. Godaddy ужасен, и поэтому они, конечно, не позволяют rsync. Я могу использовать scp, но я действительно хочу копировать только измененные файлы. Я не думаю, что это возможно, поэтому мне было интересно, если бы я мог scp только все файлы php.
Однако существует много подкаталогов, поэтому мне нужно использовать опцию -r.
Есть ли способ, которым я могу использовать scp для рекурсивного копирования всех файлов с расширением php
? как это:
scp -r -name "*php" /local/html/ user@server:/home/html/
(не работает)
ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ
//on local machine $ find ./source source/1.php source/2.php source/sub source/sub/3.php source/sub/4.php source/sub/DONT-copy.txt source/sub/DONT-copy.png source/sub/sub2 source/sub/sub2/5.php source/sub/sub2/6.php //command to copy the files $ [scp command here] //on remote server $ find ./destination destination/1.php destination/2.php destination/sub destination/sub/3.php destination/sub/4.php destination/sub/sub2 destination/sub/sub2/5.php destination/sub/sub2/6.php
ЭТО НЕ РАБОТАЕТ
//on local machine $ find ./source source/1.php source/2.php source/sub source/sub/3.php source/sub/4.php source/sub/DONT-copy.txt source/sub/DONT-copy.png source/sub/sub2 source/sub/sub2/5.php source/sub/sub2/6.php //command to copy the files $ cd source; scp -r *.php user@remote:/destination //on remote server $ find ./destination destination/1.php destination/2.php
Возможно, мы могли бы попытаться использовать find, но я уверен, что это не будет работать как есть:
find ./source -name "*.php" -exec scp {} user@remote:{} \;
Это не сработает, потому что я не думаю, что вы можете использовать несколько операторов {}
в find.
Кроме того, может быть сложно получить пути для выравнивания на удаленном сервере, например, если find возвращает /users/johndoe/documents/source/1.php
и вы хотите, чтобы он оказался в /home/jane/www/destination/1.php
на удаленном сервере.