Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

2건의 글

Linux에서 파일을 압축·분할해 지정 크기로 나누기 (tar + split)

Linux에서 대용량 파일을 tar로 압축한 뒤 split 명령으로 지정 크기(예: 4000M)의 분할 파일로 나누는 방법이다. tar zcvf와 split을 파이프(|)로 연결해 한 번에 처리하는 방법, 분할 파일을 cat으로 합친 뒤 압축을 푸는 과정, 그리고 tar 명령의 주요 옵션 설명을 담고 있다.

1、普通tar压缩命令

tar -zcvf cm-11.tar.gz cm-11

//将cm-11文件夹压缩成cm-11.tar.gz

2、压缩后的文件太大,需要将cm-11.tar.gz分割成N个指定大小的文件,怎么办?一条命令搞定

split -b 4000M -d -a 1 cm-11.tar.gz cm-11.tar.gz.

//使用split命令,-b 4000M 表示设置每个分割包的大小,单位还是可以k

// -d "参数指定生成的分割包后缀为数字的形式

//-a x来设定序列的长度(默认值是2),这里设定序列的长度为1

执行命令后,生成压缩包如下:

-rw-r--r-- 1 root root 4194304000 May 20 14:00 cm-11.tar.gz.0

-rw-r--r-- 1 root root 4194304000 May 20 14:02 cm-11.tar.gz.1

-rw-r--r-- 1 root root 4194304000 May 20 14:03 cm-11.tar.gz.2

-rw-r--r-- 1 root root 4194304000 May 20 14:05 cm-11.tar.gz.3

-rw-r--r-- 1 root root 4194304000 May 20 14:06 cm-11.tar.gz.4

-rw-r--r-- 1 root root 4194304000 May 20 14:08 cm-11.tar.gz.5

-rw-r--r-- 1 root root 4194304000 May 20 14:09 cm-11.tar.gz.6

-rw-r--r-- 1 root root 2256379886 May 20 14:10 cm-11.tar.gz.7

3、其实以上两步也可以合并成一步来执行

tar -zcvf cm-11.tar.gz cm-11 | split -b 4000M -d -a 1 - cm-11.tar.gz.

//采用管道,其中 - 参数表示将所创建的文件输出到标准输出上

4、普通解压命令

tar -zxvf cm-11.tar.gz

5、分割后的压缩包解压命令如下

cat cm-11.tar.gz.* | tar -zxv

6、附上tar命令的参数解释

tar可以用来压缩打包单文件、多个文件、单个目录、多个目录。

Linux打包命令 tar

tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。

常用格式:

单个文件压缩打包 tar -czvf my.tar.gz file1

多个文件压缩打包 tar -czvf my.tar.gz file1 file2,...(file)(也可以给file文件mv 目录在压缩)

单个目录压缩打包 tar -czvf my.tar.gz dir1

多个目录压缩打包 tar -czvf my.tar.gz dir1 dir2

解包至当前目录:tar -xzvf my.tar.gz

cpio

含子目录find x* | cpio -o > /y/z.cpio

不含子目录ls x* | cpio -o > /y/z.cpio

解包: cpio -i < /y/z.cpio

[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....

参数:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!

因为不可能同时压缩与解压缩。

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成

『 tar -zcvPf tfile sfile』才对喔!

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

--exclude FILE:在压缩的过程中,不要将 FILE 打包!

Linux/SSH tar 명령어 총정리 - 압축·해제·분할 압축

Linux에서 자주 쓰는 tar 명령어를 파일 형식별로 정리한 글이다. tar, gz, tar.gz, bz2, tar.bz2, Z, tgz, zip, lha, rar 형식별 압축·해제 명령과, 대용량 파일을 지정 크기로 분할 압축하는 split 사용법, 분할 파일을 cat으로 합친 뒤 해제하는 과정, rar 설치 방법까지 설명한다.

关于这个Tar命令,与其说是压缩和解压文件,不如说我们平时都用它来打包文件。这个命令最大的作用应该是在备份网站数据上了,我习惯先Tar打包数据,再用备份VPS wget一下,当然数据库部分就另算了~呵呵,关于网站备份我会另写文章,这里简单和大家分享一下这个Tar命令的参数和用法(以文件格式分类)~

01-.tar格式

  • 解包:tar xvf FileName.tar
  • 打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)

02-.gz格式

  • 解压1:gunzip FileName.gz
  • 解压2:gzip -d FileName.gz
  • 压 缩:gzip FileName

03-.tar.gz格式

  • 解压:tar zxvf FileName.tar.gz
  • 压缩:tar zcvf FileName.tar.gz DirName

04-.bz2格式

  • 解压1:bzip2 -d FileName.bz2
  • 解压2:bunzip2 FileName.bz2
  • 压 缩: [*******]$ bzip2 -z FileName

05-.tar.bz2格式

  • 解压:tar jxvf FileName.tar.bz2
  • 压缩:tar jcvf FileName.tar.bz2 DirName

06-.bz格式

  • 解压1:bzip2 -d FileName.bz
  • 解压2:bunzip2 FileName.bz

07-.tar.bz格式

  • 解压:tar jxvf FileName.tar.bz

08-.Z格式

  • 解压:uncompress FileName.Z
  • 压缩:compress FileName

09-.tar.Z格式

  • 解压:tar Zxvf FileName.tar.Z
  • 压缩:tar Zcvf FileName.tar.Z DirName

10-.tgz格式

  • 解压:tar zxvf FileName.tgz

11-.tar.tgz格式

  • 解压:tar zxvf FileName.tar.tgz
  • 压缩:tar zcvf FileName.tar.tgz FileName

12-.zip格式

  • 解压:unzip FileName.zip
  • 压缩:zip FileName.zip DirName

13-.lha格式

  • 解压:lha -e FileName.lha
  • 压缩:lha -a FileName.lha FileName

14-.rar格式

  • 解压:rar x FileName.rar或unrar -e FileName.rar
  • 压缩:rar a FileName.rar FileDir

有关rar请到:http://www.rarsoft.com/download.htm 下载!
解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量
指定的目录也行): cp rar_static /usr/bin/rar
15.在linux下分卷压缩

tar cvzpf - vmvps | split -d -b 50m

上面的命令是将vmvps这个文件夹分卷压缩,每卷50m,分卷会被命名为x00,x01,x02

在linux下解压
首先需要合并:
合并的命令是: cat x*>vmvps.tar.gz
然后解压:tar xzvf vmvps.tar.gz

在windows下合并文件
copy /b x* www.rar



Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.