Answers:
我想为此使用scp,但是scp只允许一次传输一个文件。
我敢肯定这是不对的,至少对于scp
大多数Linux发行版中包含的OpenSSH提供的命令而言,这不是事实。
我scp file1 file2 ... fileN user@host:/destination/directory/
经常使用。
对于透明压缩,SSH协议已内置此协议scp
,如果您-C
在命令行中提供了该选项,则可以使用它。对于许多类似的小文件,您会发现akira建议的tar + gz选项可获得更好的压缩效果,因为它可以利用这些文件之间的相似性来scp
将每个文件压缩为单独的实体。我通常更喜欢使用scp,因为它更容易恢复部分传输(或者,尽管我知道在这种情况下,发问者没有选择权),rsync
因为这既更容易恢复又可以共享tar + gz选项的全部内容流压缩优势。
可以解决很多麻烦。
我只是创建了一个文件列表,每个文件旁边都有主机名,而scp似乎可以很好地解析它。即。
srchost=`hostname`
myfiles="${srchost}:~/.bashrc ${srchost}:~/.bash_profile ${srchost}:~/.vimrc ${srchost}:~/.viminfo ${srchost}:~/.toprc ${srchost}:~/.dir_colors"
scp -v $myfiles $HOME
Scp似乎可以使用这种语法正常工作。当我尝试在每个文件旁边都没有主机名的情况下,它在第一个文件之后失败了。我似乎想起了以前用于此的另一种语法,一旦找到它便将其发布。
~/
大多数情况下可以忽略-SCP相对于主目录进行操作。 ..如果您在以下位置有其他列表$list
:(scp $(echo "$list"|sed "s/^/$srchost:/") local_destination
这会破坏带有空格的文件名)
我建议零件使用这样的命令从您的文件列表创建档案
tar -cvf allfiles.tar -L mylist.txt
然后使用scp下载存档。
scp user @ remotehost:〜/ allfiles.tar
/programming/8033857/tar-archiving-that-takes-input-from-a-list-of-files
-C'' on a line by itself will cause the current directory to be changed to the directory specified on the following line. Names are terminated by newlines unless --null is specified. Note that --null also disables the special handling of lines containing
-C”。