首先,无论本地还是远程,需要移动或拷贝的文件较多且都不太大时,用cp命令和mv命令效率较低,可以先使用tar工具对将要拷贝/移动的内容进行打包/压缩,之后再进行拷贝/移动,最后再解包/解压缩。
另外,也是很关键的一个技巧,即,不必在tar打包/压缩完毕之后再进行拷贝,解包/解压缩,可以通过管道一边打包/压缩另一边执行拷贝解包/解压缩。
比如,tar命令可以和nc命令结合可以快速在两台机器之间传输文件和目录:
B机器:
nc -l 5555 |tar -C /tmp/test/ -xf -
A机器:
tar cf - /tmp/test/ |nc B'IP 5555
上述步骤将A机器/tmp/test/下的内容拷贝到B机器对应的目录中,其中tar cf - /tmp/test/ |nc B'IP 5555 将内容边打包边通过管道和nc命令传输到由对应IP地址和5555端口传到B机器,nc -l 5555 |tar -C /tmp/test/ -xf - 监听本机的555端口,并将接收到的内容解包至指定的目录(-C参数指定目标目录)
此外,tar还可与scp、ssh命令结合:
在A机打包后,复制到B机器并解包
tar -cf - /tmp/test | ssh B'IP cd /tmp; tar -xf -
在A机打包,并将打包好的文件复制到B机
tar -cf - /tmp/test | ssh B'IP cd /tmp; cat - test.tar
tar -cf - /tmp/test | scp - B'USER@B'IP:/tmp
将A机的打包文件,复制到B机并解包
zcat test.tar | ssh B'IP cd /tmp; tar -xf -
也可以直接在本地这么使用:
cd /tmp/test1
tar -cf - . | (cd /tmp/test2 ; tar -xvpf -)
但有人试验后得出结论本地直接用cp较快
另外一些小技巧:
拷贝时除了拷贝单个文件还会拷贝目录,有时需要连同文件/目录的属性一同拷贝。可以在cp命令中使用-R参数递归拷贝目录,使用-p参数拷贝文件保留属性(默认是:mode,ownership,timestamps也可以通过 --preserve[=ATTR_LIST]指定要特别保留的属性如:context, links,xattr, all),使用-d参数拷贝文件保留连接。或者简单的使用-a参数(相当于使用-dR --preserve=all)
如果想看到拷贝大量小文件的进度可以写一个简单的小脚本:
复制代码
代码如下:
cd /tmp/test最后补充一条不是技巧的技巧:在使用一个工具完成一项任务之前,先思考当前用的工具是不是最适合的工具?有没有更好的工具或办法?如果工具确实很适用于当前任务,那么在使用该工具时有没有特殊的技巧可以提高工作效率?(通常,查看帮助文档可有意外收获)。
Linux系统之间拷贝文件的方法总结
首先,无论本地还是远程,需要移动或拷贝的文件较多且都不太大时,用cp命令和mv命令效率较低,可以先使用tar工具对将要拷贝\/移动的内容进行打包\/压缩,之后再进行拷贝\/移动,最后再解包\/解压缩。另外,也是很关键的一个技巧,即,不必在tar打包\/压缩完毕之后再进行拷贝,解包\/解压缩,可以通过管道一边打...
linux怎么拷贝文件
1、打开linux系统,在linux的桌面的空白处右击。2、在弹出的下拉选项里,点击打开终端。3、在终端窗口中输入cd\/tmp进入tmp目录,然后输入mkdir dog创建dog文件夹。2、进入dog目录,输入touch a.txt创建文件a。3、输入cp a.txt b.txt来复制文件即可。
两台Linux服务器之间传输文件的四种方法
首先,SCP(Secure Copy)是远程文件拷贝的首选工具,它利用SSH协议确保数据传输的安全性与可靠性,并支持限速参数。SCP的命令格式较为简单,例如,将本地文件source.txt拷贝至远程服务器的\/home\/work目录可以通过命令“scp \/home\/work\/source.txt work@192.168.0.10:\/home\/work\/”实现;同理,可以将...
如何从linux的文件拷贝到另一台机器
1、从服务端copy文件到本地。比如服务器的home下有一个文件是a.txt,那么命令是:scp root@192.168.2.208:\/home\/a.txt \/home 此时会要你输入root的密码。输入后即可把a.txt 拷贝到你当前电脑的home下了。发现规律没有?scp的命令是:scp 服务器用户名@iP地址:服务端文件路径 客户端保存路...
linux怎么复制文件
答,方法如下 1、copy,cp,该命令的功能是将给出的文件或目录拷贝到另外一个文件或目录中。语法:cp源文件或目录目标文件或目录 2、例如;在\/TEST目录下新建test1和test2两个子文件夹。假设复制源文件test1下的test01文件,目标目录为test2。直接可以用:cp\/TEST\/test1\/test01\/TEST\/test2 3、例如;在...
linux如何复制文件
linux系统使用cp命令即可将一个文件夹里面的文件复制到另外一个文件夹里面。这个命令相当于dos下面的copy命令,具体用法是:cp_r源文件目的文件,其中参数r是指连同源文件中的子目录一同拷贝。..\/ 和 .\/ 代表的 是上级目录以及当前目录。使用时的两种情况:1、处在当前目录复制当前目录下文件到别的目录...
Linux下快速拷贝文件夹的方法拷贝文件夹linux
首先,在命令行中输入cd->进入到拷贝文件夹的路径,例如:cd \/home\/user\/folder。然后,输入命令 cp -R folder1 folder2(folder1是将要拷贝的文件夹,folder2是新建的工作文件夹),它将复制原文件夹中的所有文件到新文件夹中。另外,可以使用rar命令来快速拷贝文件夹,这是一个具有强大压缩功能的...
Linux系统怎么复制文件夹下的全部文件到另外文件夹
1、用cp命令可以复制全部文件。1)、复制的时候记得使用通配符*,*表示所有文件。2)、复制的时候记得-R参数,即递归复制,可以将源文件夹下的子文件夹中的文件一并复制。2、示例:将当前用户home目录下的doc文件夹下的所有文件复制到Downloads目录中。3、cp命令使用详解:1)、用法:cp [选项]... ...
linux拷贝文件夹到指定目录
在Linux系统中,可以使用`cp`命令或`rsync`命令来拷贝文件夹到指定目录。具体操作方法如下:使用`cp`命令拷贝文件夹:1. 打开终端,进入要拷贝的文件夹所在的目录。2. 使用命令 `cp -r 源文件夹路径 目标文件夹路径` 来拷贝文件夹及其内容。其中 `-r` 参数表示递归拷贝,包括子目录和文件。使用`...
Linux系统怎么复制文件夹下的全部文件到另外文件夹
1、copy ,cp,该命令的功能是将给出的文件或目录拷贝到另外一个文件或目录中。语法: cp [选项] 源文件或目录 目标文件或目录 2、例如;在\/TEST目录下新建test1和test2两个子文件夹。 假设复制源文件test1下的test01文件,目标目录为test2。直接可以用: cp \/TEST\/test1\/test01 \/TEST\/test2 3...