web-dev-qa-db-ja.com

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

私の目標はコピーのみですすべてのファイル〜/ 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パラメータを使用する場合

85
Edgaras Karka

scpには-r引数があります。だから、使ってみてください:

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

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

123
parazyd

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オプションを設定すると、ファイルとディレクトリが転送されます。

24
tachomi

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

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

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

18
raphinesse

次の手順を実行します:

  1. ディレクトリlocal_dirとそのすべてのサブディレクトリをコピーします。

    scp -r ~/local_dir [email protected] /var/www/html/target_dir
    
  2. ディレクトリlocal_dir自体ではなく、local_dirの内容のみをコピーします。

    scp -r ~/local_dir/* [email protected] /var/www/html/target_dir
    
  3. 使用しないでください:scp -r ~/local_dir/. [email protected] /var/www/html/target_dirはエラーをスローするため(テストして次のエラーを受け取ったところです):

    scp: error: unexpected filename: .
    
3
Syed Faraz Umar