
マシンAIにはフォルダがあります
/home/a/
マシンBIにはフォルダがあります
/home/b/
/home/a のすべてのファイル、ディレクトリ、サブディレクトリを sftp を使用して /home/b に転送したい。マシン AI で次のコマンドを試しました:
sftp [email protected]
put /home/a/* /home/b/
しかし、動作しません。エラー メッセージが表示されます: 「非通常ファイル /home/a/a1 をスキップしています」... [a1 は a のサブディレクトリです]
put 命令を変更するにはどうすればよいですか?
ありがとう! :)
編集:
scpを使用して解決しました:
scp -r /home/a/ [email protected]:/home/b/
答え1
厳密にはsftpと同じではありませんが、rsyncは、変更されていないファイルはコピーしないため、マシン A からマシン B にコピーを更新するときに特に scp や sftp の非常に強力な代替手段です。また、マシン A から削除されたファイルをマシン B から削除することもできます (もちろん、指示された場合のみ)。
あなたの場合、構文は次のようになります
rsync -zrp /home/a/ [email protected]:/home/b/
この-r
オプションは、ファイルを再帰的にコピーするためのもので、-z
転送中に圧縮を有効にし、-p
コピー時にファイルの権限 (ファイルの作成、編集など) を保持します。これは、私の知る限り、scp では実行されないことです。さらに多くのオプションが可能です。いつものように、man
ページをお読みください。
答え2
答え3
scp
(セキュア コピー) は、セキュア トンネル経由でファイルを転送するための Linux の事実上の標準です。この場合、再帰スイッチを使用する必要があります。例:
scp -r /home/a/ [email protected]:/home/b/
答え4
実際には、 put -r が機能するはずです。ただし、宛先フォルダーがリモート ホスト上に存在している必要があります。
sftp> put -r sourcefolder
Uploading sourcefolder/ to /user/folder
Couldn't canonicalize: No such file or directory
....
sftp> mkdir sourcefolder
sftp> put -r sourcefolder
Uploading sourcefolder/ to /user/folder/sourcefolder
Entering sourcefolder/
sourcefolder/file1
sourcefolder/file2