Linux下文件的传输、归档、压缩

系统中的文件传输

scp

和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器。scp传输是加密的,可能会稍微影响一下速度。相对于rsync,它比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh.
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

上传

scp 本地文件 远程主机用户@远程主机IP:远程主机目录

>    scp /mnt/westos [email protected]:/mnt/   ##上传文件 
>    scp -r /mnt/lee/  [email protected]:/mnt/  ##上传目录

下载

scp 远程主机用户@远程主机IP:远程主机目录 本地目录

>    scp [email protected]:/mnt/westos  /mnt/ 
>    scp -r [email protected]:/mnt/lee  /mnt/  

!!注意地址
比如在虚拟机里,如果要拷贝真机桌面的文件
示例:scp [email protected]:/home/kiosk/Desktop/* /mnt
在这里插入图片描述
如果要拷贝虚拟机桌面的文件 。
示例:scp [email protected]:/root/Desktop/* /mnt
在这里插入图片描述

rsync

-r 目录复制
-l 不忽略链接
-p 不忽略权限
-t 不忽略时间戳
-o 不忽略用户
-g 不忽略组
-D 不忽略块设备
ln -s /mnt/file1 /mnt/westos
rsync /mnt [email protected]:/mnt/
rsync -r /mnt [email protected]:/mnt/
rsync -r /mnt/ [email protected]:/mnt/

rsync -r /mnt [email protected]:/mnt/
rsync -lr /mnt [email protected]:/mnt/
rsync -Dlr /mnt [email protected]:/mnt/
rsync -ogDlr /mnt [email protected]:/mnt/
rsync -pogDlr /mnt [email protected]:/mnt/
rsync -tpogDlr /mnt [email protected]:/mnt/

注意:

要将目录传递过去,则不可以加斜杠"/":即 mnt/ 。否则就是传递mnt内全部文件不包括mnt目录 。
也就是说。源路径如果是目录,不带尾斜线表示的是整个目录包括目录本身,带上尾斜线表示的是目录中的文件,不包括目录本身。

打包

tar是打包,不是压缩

参数:
-c :建立一个压缩文件的参数指令(create );
-x :解开一个压缩文件的参数指令!
-t :查看 tar file 里面的文件!
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
////以上五个是独立的命令参数,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名     使用『 tar -zcvfP file1 file2 』就是错误的,要写成 『 tar -zcvPf tfile sfile』
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
–exclude FILE:在压缩的过程中,不要将 FILE 打包!

du -sh etc.tar 显示每个文件和目录的磁盘使用空间。
tar cf etc.tar /etc/ ##将/etc/目录打包到当前目录
tar cf etc.tar /etc/* ##将/etc/目录及内容打包到当前目录

tar tf etc.tar ##列表显示包内文件

tar rf etc.tar westos ##追加westos文件到包内
tar f etc.tar –delete westos ##删除包内westos
tar xf etc.tar ##解压到当前目录下
tar f etc.tar –get westos ##解压具体文件westos到当前目录
tar xf etc.tar -C /mnt/ ##解压到指定目录下

注意:

在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
如果加 j 参数,则以 .tar.bz2 来作为附档名啊~

压缩

zip
压缩:zip -r etc.tar.zip etc.tar

解压:unzip etc.tar.zip

gzip
压缩:gzip etc.tar

解压:gunzip etc.tar.gz

 gzip -d etc.tar.gz

bzip2
压缩:bzip2 etc.tar

解压:bunzip2 etc.tar.bz2

xz(最小,比较慢)
压缩:xz etc.tar

解压:unxz etc.tar.xz

打包压缩只支持三种

gzip z
打包压缩:tar zcf etc.tar.gz /etc/

解压:tar zxf etc.tar.gz
bzip j
打包压缩:tar jcf etc.tar.bz2 /etc/

解压:tar jxf etc.tar.bz2
xz J
打包压缩:tar Jcf etc.tar.xz /etc/

解压:tar Jxf etc.tar.xz

猜你喜欢

转载自blog.csdn.net/qq_36016375/article/details/89004107
今日推荐