scpを使用してディレクトリ内のすべてのファイルをリモートディレクトリにコピーする方法は?

scpを使用してディレクトリ内のすべてのファイルをリモートディレクトリにコピーする方法は?

私の目標は単にコピーすることですすべてのファイル~から~/ローカルディレクトリ到着[Eメール保護]/var/www/html/target_dir使用SCPそして、local_dirにlocal_dirカテゴリを作成しないでください。

/var/www/html/target_dir/files..

しかし、

/var/www/html/target_dir/local_dir/files..-r パラメーターを使用する場合

答え1

scpには-rパラメータがあります。したがって、以下を試してください。

$ scp -r ~/local_dir [email protected]:/var/www/html/target_dir

-r引数はcpの-r引数と同じように機能し、フォルダ全体とその中のすべてのファイルとサブディレクトリを転送します。

答え2

local_dirワイルドカード内のすべてのファイルを転送することが目標である場合は、次のことが*できます。

$ scp ~/local_dir/* [email protected]:/var/www/html/target_dir

この-rオプションは「recursive」を意味するため、ディレクトリ全体または複数のディレクトリを転送しようとしたときに作成する必要があります。

からman scp

-r 
Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.

したがって、local_dir最後の例では、内部にサブディレクトリがある場合にのみファイルを転送しますが、その-rオプションを設定するとファイルとディレクトリが転送されます。

答え3

ソースディレクトリに追加すると、/.ディレクトリ自体ではなくその内容が送信されます。ワイルドカードソリューションとは異なり、これには隠しファイルもすべて含まれます。

$ scp -r ~/local_dir/. [email protected]:/var/www/html/target_dir

このソリューションのクレジットはroaimaにありますが、コメントではなく実際の回答として投稿する必要があると思います。

答え4

返品

rsync -avP ~/local_dir/ [email protected]:/var/www/html/target_dir/

動作する必要があります。

-n最後に実行してください

rsync -avP ~/local_dir/ [email protected]:/var/www/html/target_dir -n

タスクをシミュレートし、結果が必要なものであることを確認できます。

関連情報