Linux中归档文件并在系统间传输文件
文件归档tar
tar命令能够列出存档内容,或者将其文件提取到当前系统。通过tar,用户可以将大型文件集汇集为一个文件(存档),该存档可用gzip,bzip2,xz压缩方式压缩
使用归档文件和目录tar
在创建tar存档之前,先验证目录中没有其他存档与要创建的新存档名称相同,tar命令将覆盖现有的存档,而不提供任何反馈
tar cf name.tar /../.. ---- 创建在当前路径中的文件name.tar是由/.../...中的文件归档而成的
要使tar可以归档选定的文件,执行 tar命令的用户必须要能够读取这些文件
列出tar存档的内容
tar tf /../../name.tar ---- 列出绝对路径下tar存档的内容
提取创建的tar存档
tar存档通常应当提取到空目录中,已确保它不会覆盖现有的任何文件。如果由root用户提取文件,tar将尝试保留文件的原始用户和组的所有权。如果普通用户使用tar提取文件,则提取的文件由该用户所有
tar xf /.../name.tar ---- 将绝对路径下的tar文件提取到当前路径中
默认情况下,从存档中提取文件时,将从存档内容的权限中取出umask,这是一种安全措施,可防止提取的普通文件默认收到执行权限,要保留存档文件的权限,可在提取存档时所使用p选项
tar xfp /.../name.tar ---- 将绝对路径下的tar文件提取到当前路径中,并保留提取文件的权限
创建压缩的tar存档
tar命令支持三种不同的压缩方式:
gzip(.gz):压缩速度最快,历史最久
bzip2(.bz2):压缩生成的存档文件通常比gzip文件小,但是可用性不如gzip广泛
xz(.xz):压缩方式较新,通常提供可用方式中最佳的压缩率
tar zcf /.../name.tar.gz file ---- 把当前路径中的文件归档压缩为gzip文件并保存至指定目录中
tar jcf /.../name.tar.bz2 file---- 把当前路径中的文件归档压缩为bzip2文件并保存至指定目录中
tar Jcf /.../name.tar.xz file ---- 把当前路径中的文件归档压缩为xz文件并保存至指定目录中
提取压缩的tar存档
tar -zxf /.../name.tar.gz ---- 提取目标路径中gzip文件提取压缩至当前目录
tar -jxf /.../name.tar.bz2 ---- 提取目标路径中bzip文件提取压缩至当前目录
tar -Jxf /.../name.tar.xz ---- 提取目标路径中gzip文件提取压缩至当前目录
tar选项概述
选项 | 含义 |
c | 创建一个新存档 |
x | 从现有存档提取 |
t | 列出存档的内容 |
v | 详细信息:显示存档或提取的文件有哪些 |
f | 指定生成文档的文件名 |
p | 在提取存档时保留存档的权限,不去除umask |
z | 使用gzip压缩 |
j | 使用bzip压缩 |
J | 使用xz压缩 |
系统间文件的复制(安全)
文件复制到远程主机,或从中复制文件命令scp
scp命令可以将文件从远程主机传输到本地系统,或者反之。它利用SSH服务器进行身份验证和加密数据的传输,在启动传输之前,用户必须通过密码或SSH**与SSH服务器进行身份验证
scp /.../file [email protected]:/.../... ---- 把当前主机中的文件复制到远程主机的指定目录中
scp -r /.../mkdir [email protected]:/.../... ----把当前主机中的目录复制到远程主机的指定目录中
scp [email protected]:/.../file /.../... ---- 把远程主机中的文件复制到当前主机的指定目录中
远程传输文件sftp
如果想要在上传文件到SSH服务器或从中下载文件时使用交互式工具,可以使用sftp命令。sftp的会话与FTP会话相似,但使用SSH服务器的安全身份验证机制和加密数据传输功能
sftp [email protected] ---- 与远程主机建立sftp会话
sftp会话接受各种命令,这些命令在远程文件系统上运行的方式与在本地文件系统上相同,此外还有put和get命令供上传和下载文件使用,使用exit命令可以退出sftp会话
系统间文件的同步(安全)
同步文件和文件夹命令——rsync
rsync工具是在系统之间安全复制文件的另外一种方式。它与scp的区别在于,如果两个系统间的两个文件或目录类似,rsync仅需要复制系统间的差异部分,而scp则需要复制所有内容
rsync的一个优点是它能够在本地系统和远程系统之间安全而高效地复制文件
rsync的一个最重要选项是-n选项,它用于执行空运行,空运行是对真正执行命令时所发生情况的模拟,它将显示在不使用空运行选项执行命令时将执行的更改,建议在任何rsync操作前先执行空运行,以确保重要的文件不会被覆盖或删除
rsync选项:
选项 | 含义 |
-r | 以递归方式同步整个目录 |
-l | 保留文件快捷方式 |
-p | 保留文件权限 |
-t | 保留文件时间戳 |
-g | 保留文件所有组 |
-o | 保留文件所有者 |
-D | 同步设备文件 |
rsync /../file [email protected]:/.../... ----把当前主机中的文件同步到远程主机的指定目录中
rsync [email protected]:/.../file /.../... ---- 把远程主机中的文件同步到当前主机的目录中