サーバー上の未知のディレクトリをローカルに転送する場合、下記のコマンドをローカルで実行すると無難だと思いました。
rsync -av username@server_ip:/(絶対パス)/ local_dir
未知のディレクトリ配下にシンボリックリンクがあっても良い感じに転送してくれるのがrsync -av
でした。
例えばscp -r
などで転送するとシンボリックリンクの中身も全部コピーされてしまい、転送に時間がかかります。
補足
rsyncのオプションです。
-
-a
: -rlptgoDと同じ意味 -
-r
: 指定ディレクトリ配下をすべて対象とする -
-l
: シンボリックリンクは、そのままシンボリックリンクとしてコピーする -
-p
: パーミッションをそのままコピーする -
-t
: タイムスタンプをそのままコピーする -
-g
: グループをそのままコピーする -
-o
: ファイル所有者をそのままコピーする -
-D
: デバイスファイルや特殊ファイルを保持する(--devices --specialと同じ) -
-v
: verboseモードで動作状況を表示する
-av
はこれら全部を指定しているのと同じです。
(追記)
-
-u
: 追加・変更されたファイルのみコピー -
--delete
: 同期元にないファイルを同期先から削除 -
--exclude
: 除外したいファイルを指定