私の目標はコピーのみですすべてのファイル〜/ local_dirから[email protected]/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パラメータを使用する場合
scpには-r引数があります。だから、使ってみてください:
$ scp -r ~/local_dir [email protected]:/var/www/html/target_dir
-r引数はcpの-r argと同じように機能し、フォルダー全体と、その中のすべてのファイルおよびサブディレクトリーを転送します。
local_dir
からすべてのファイルを転送することが目的の場合、*
ワイルドカードでうまくいきます。
$ scp ~/local_dir/* [email protected]:/var/www/html/target_dir
-r
オプションは「再帰的に」を意味するため、ディレクトリ全体または複数のディレクトリを転送する場合は、それを記述する必要があります。
man scp
から:
-r
Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.
したがって、local_dir
内にサブディレクトリがある場合、最後の例ではファイルのみが転送されますが、-r
オプションを設定すると、ファイルとディレクトリが転送されます。
追加/.
をソースディレクトリに転送すると、ディレクトリ自体ではなく、その内容が転送されます。ワイルドカードソリューションとは対照的に、これには隠しファイルも含まれます。
$ scp -r ~/local_dir/. [email protected]:/var/www/html/target_dir
このソリューションの功績はroaimaにありますが、コメントだけでなく実際の回答として投稿する必要があると思いました。
次の手順を実行します:
ディレクトリlocal_dir
とそのすべてのサブディレクトリをコピーします。
scp -r ~/local_dir [email protected] /var/www/html/target_dir
ディレクトリlocal_dir
自体ではなく、local_dir
の内容のみをコピーします。
scp -r ~/local_dir/* [email protected] /var/www/html/target_dir
使用しないでください:scp -r ~/local_dir/. [email protected] /var/www/html/target_dir
はエラーをスローするため(テストして次のエラーを受け取ったところです):
scp: error: unexpected filename: .