文章目录
环境准备:
linux操作系统
VMware Workstation16.x
Centos7
打包压缩:
大文件超过4G的,无法传输 => 大文件的切割工具:将大文件切割(split)成很多小文件,然后我们就可以上传了
yum install lrzszcurl命令在linux里的使用
curl => 理解为linux里的字符界面的浏览器 下载
curl => 是默认安装在centos7的系统里,默认下载文件寻访在当前目录下
-O => 下载到当前文件夹
-o /backup/nginx.tar.gz => 指定下载到/backup目录下叫nginx.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1048k 100 1048k 0 0 572k 0 0:00:01 0:00:01 --:--:-- 572k
[root@master ~]# ls /backup
beijing filepath.txt hubei nginx.tar.gz yunnan
[root@master ~]#
[root@master ~]# curl -o /backup/nginx-1.21.6.tar.gz http://nginx.org/download/nginx-1.21.6.tar.gz
将http://nginx.org/download/nginx-1.21.6.tar.gz # 文件下载到本地的/backup目录下叫nginx-1.21.6.tar.gz
zip只能对文件进行压缩,不能对文件夹进行压缩
zip passewd.zip passwd
passwd.zip => 打包压缩文件名passwd => 源文件名[root@localhost backup]# unzip passwd.zip
Archive: passwd.zip
inflating: passwd
Archive 附件: 一个压缩包或者压缩文件就称为一个附件
存档文件,归档文件
其实就是将一个文件压缩或者很多文件放到一个文件里,把很多东西放到一起 => 这个过程就称呼归档,存档
deflated 泄气(压缩)
inflate: 解压
.gz压缩文件
直接在原文件上进行压缩,添加后缀名.gz
[root@localhost backup]# gzip passwd
查看压缩文件里的内容
[root@localhost backup]# zcat passwd.gz
解压文件
[root@localhost backup]# gunzip passwd.gz
压缩
[root@localhost backup]# xz passwd
[root@localhost backup]# ls
beijing filepath.txt guangdong hunan passwd.xz passwd.zip shenzhen
查看压缩文件里的内容
[root@localhost backup]# xzcat passwd.xz
解压文件并查看
[root@localhost backup]# unxz passwd.xz
[root@localhost backup]# ls
beijing filepath.txt guangdong hunan passwd passwd.zip shenzhen
[root@localhost backup]#
xz的压缩效果比gzip好,压缩后占用的空间比较少,压缩需要的时间长
gzip压缩速度快,但是效果一般
文件比较小,使用xz或者gzip都可以
如果文件比较大,建议使用xz压缩,可以节约更多磁盘空间
bzip2 也是linux里的压缩工具
.bz2压缩文件
解压:bunzip2
查看压缩文件的内容bzcat
zip、gzip、xz、bzip2
用途:制作归档文件、释放归档文件
格式:tar [选项]… 归档文件名 源文件或目录
解压:tar [选项]… 归档文件名 [-C 目标目录]
使用tar命令打的压缩包叫tarball => 即tar包
=> 归档文件:将很多个文件或者文件夹打包到一个文件里,然后可以对归档文件进行压缩
.tar => 其实是归档,不进行压缩
.tar.gz => 先归档,然后调用gzip进行压缩 =>速度快
.tar.xz => 先归档,然后调用xz进行压缩 =>压缩效果好
.tar.bz2=> 先归档,然后调用bzip2进行压缩
-c:创建 .tar 格式的包文件 create
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件 file
-t:列表查看包内的文件 list
-p:保持原文件的原来属性
-P:保持原文件的绝对路径
-z 调用gzip去压缩
-J 调用xz去压缩
-j 调用bzip2去压缩
tar -czf => .tar.gz
tar czf => .tar.gz
tar cJf => .tar.xz
tar cjf => .tar.bz2
[root@master luoyawei]# cp /boot . -r
[root@master luoyawei]# ls
boot passwd
# 将当前目录下的passwd文件打包成passwd.tar.gz压缩包
[root@master luoyawei]# tar czf passwd.tar.gz passwd
压缩文件 源文件
[root@master luoyawei]# ls
boot passwd passwd.tar.gz
[root@master luoyawei]# tar czf /lianxi/luoyawei/boot_passwd.tar.gz /boot /etc/passwd
tar: 从成员名中删除开头的“/”
[root@master luoyawei]# tar czf /lianxi/luoyawei/boot_passwd_log.tar.gz /boot /etc/passwd /var/log
tar: 从成员名中删除开头的“/”
[root@master luoyawei]#
[root@master luoyawei]# tar --exclude=/boot/{grub2,grub,efi} -czf /lianxi/luoyawei/no_grub2_boot.tar.gz /boot

[root@master luoyawei]# tar czf passwd.tar.xz passwd
[root@master luoyawei]# ls
boot passwd passwd.tar.gz passwd.tar.xz
[root@master luoyawei]# file passwd.tar.gz
passwd.tar.gz: gzip compressed data, from Unix, last modified: Tue Apr 12 19:55:59 2022
[root@master luoyawei]# file passwd.tar.xz
passwd.tar.xz: gzip compressed data, from Unix, last modified: Tue Apr 12 19:57:08 2022
+%Y year 年
%m month 月
%d day 日
%H hour 小时
%M minute 分钟
%S seconde 秒
%F 效果跟%Y-%m-%d类似
[root@hunan-wangzhe-5 lianxi]# date +%Y%m%d
20211027
[root@hunan-wangzhe-5 lianxi]# date +%Y-%m-%d
2021-10-27
[root@localhost lianxi]# echo $(date +'%F %H:%M:%S')
2022-05-07 19:18:47
获得日期给变量,然后调用变量
[root@master luoyawei]# ctime=$(date +%Y%m%d)
[root@master luoyawei]# echo $ctime
20220412
[root@master luoyawei]#
[root@master luoyawei]# tar czf boot-$ctime.tar.gz /boot
小结:
[root@localhost luoyawei]# mkdir /weihong
[root@localhost luoyawei]# pwd
/lianxi/luoyawei
[root@localhost luoyawei]# tar czf /weihong/passwd.tar.gz /etc/passwd
tar: 从成员名中删除开头的“/”
[root@localhost luoyawei]# ls /weihong
passwd.tar.gz
tar tf
tar xf
可以指定压缩包解压路径,默认解压在当前文件夹
[root@master luoyawei]# tar xf /weihong/passwd.tar.gz
[root@master luoyawei]# ls
boot etc hosts.tar.gz
[root@master luoyawei]# ls etc/
passwd
[root@master luoyawei]# tar tf /weihong/passwd.tar.gz
etc/passwd
tar xf <压缩包名> -C <解压到的路径>
[root@master luoyawei]# ls /nongda_weihong/
[root@master luoyawei]# tar xf /weihong/passwd.tar.gz -C /nongda_weihong/
[root@master luoyawei]# ls /nongda_weihong/
etc
本文章主要介绍了linux里的打包压缩相关命令,前半部分介绍了四种主要的压缩工具zip,gzip,xzip,bzip2,后面部分介绍了tar命令的打包与解包使用。
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
是否有任何可用于Ruby的开源压缩/解压库?有没有人实现过LZW?或者,是否有任何使用压缩组件的开源库可以提取出来独立使用?编辑——感谢您的回答!我应该提到我必须压缩的是只驻留在数据库中的长字符串(我不会压缩文件)。此外,如果可以执行此操作的任何库都具有用于客户端压缩/分解的等效JavaScript实现,那将是理想的,因为这将用于Web应用程序。 最佳答案 您会在rubystdlib下找到所有已交付的ruby库的一个很好的列表.我会使用zlib库,它是开放的,无处不在,您会发现几乎所有语言的库!
我有一个问题。我想从另一个ruby脚本运行一个ruby脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密
有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/
如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最
在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa
关于SSHkit-Github它说:Allbackendssupporttheexecute(*args),test(*args)&capture(*args)来自SSHkit-Rubydoc,我明白execute实际上是test的别名?test之间有什么区别?,execute,capture在Capistrano/SSHKit中我应该什么时候使用? 最佳答案 执行只是执行命令。使用非0退出引发错误。测试方法的行为与execute完全相同,但是它返回bool值(true如果命令以0退出,而false否则)。它通常用于控制任务中的流程
我在目录“C:\DocumentsandSettings\test.exe”中有一个文件,但是当我用单引号编写命令时`C:\DocumentsandSettings\test.exe(我无法在此框中显示),用于在Ruby中执行命令,我无法这样做,我收到的错误是找不到文件或目录。我尝试用“//”和“\”替换“\”,但似乎没有任何效果。我也使用过系统、IO.popen和exec命令,但所有的努力都是徒劳的。exec命令还使程序退出,这是我不想发生的。提前致谢。 最佳答案 反引号环境就像双引号,所以反斜杠用于转义。此外,Ruby会将空格解