리눅스 파일 검색 및 포장

A. 파일 검색

이 두 명령은 말할 바보입니다 사용할 때의 위치 및 리눅스를 처음 리눅스 자주 사용하는 명령을 찾을 수 있습니다. 이제 어떤 두 명령 끝의 차이를 비교할 수 있습니다.

1.1 위치

찾을 파일이 매우 빠른 파일 검색 시스템이 있는지 여부를 사용자가 지정할 수 있도록. 방법은 그냥 데이터베이스를 조회 한 후 파일 시스템에서 실제로 깊은하지 않고, 보는 경우를 포함하여 시스템 내에서 모든 파일 이름 및 경로의 데이터베이스를 구축하는 것입니다. 일반적으로 분산 데이터베이스의 설립 사이에 배치 crontab을 자동으로 실행.

1.1.1 명령 형식 :

Locate [选择参数] [样式]

1.1.2 기능 :

위치 , 데이터베이스 파일을 검색 할 때 신속하게 찾을 수 있습니다 명령을 찾을 퍼지 조회 데이터베이스 구성 updatedb에 프로그램을 업데이트하려면 updatedb에 바이 cron 디먼이 정기적으로 설립 찾아 명령은 데이터베이스 검색의 데이터에 의해 정보를 검색하기 위해 전체 하드 디스크보다 빠르다 미만 강도는 최근 만들거나 이름을 변경 발견하면 파일을 찾아, 당신은 기본값에서 찾을 수 없습니다, updatedb에가 하루에 한 번 실행됩니다에 의해 수정 될 수 crontab을 설정 값을 업데이트 할 수 있습니다. ( 기타 / crontab을 )

위치 는, 데이터베이스 파일 및 디렉토리 이름에 저장 갈 것입니다, 자격을 갖춘 검색 파일을 책정 위치 검색으로 이동, 쿼리 파일을 /var/lib/mlocate/mlocage.db 스타일 파일이나 디렉토리의 조건에 부합하는 모델을 찾아, 기록, 당신은 (예 : "*****"또는 "같은 특수 문자를 사용할 수 있습니다 ? 등을위한 템플릿을 지정하는 것과 템플릿 스타일 지정", 등) kcpa의 NER의 *, 케이트 을 시작하는 모든 문자열을 찾을거야 ' kcpa 및 종료 NER을 파일이나 디렉토리는 같은 이름으로 kcpartner 기록에 대한 디렉토리 이름 경우 kcpa_ner는 나열된 하위 디렉토리를 포함하여 디렉토리에있는 모든 파일이 포함됩니다.

찾아 파일 같은 기능을 찾기 위해 지침을 찾을 수 있지만 위치하는 통해 업데이트 데이터베이스 인덱스를 작성하는 모든 파일과 디렉토리 정보의 하드 디스크에서 프로그램 실행이 loacte 직접 인덱스를 찾을 수, 쿼리 속도가 빠른 일반 인덱스 데이터베이스 될 것입니다 이 운영 시스템에 의해 관리되지만, 직접 발행 즉시 인덱스 업데이트 데이터베이스를 수정하는 시스템을 강제 할 수 있습니다.

1.1.3 명령 매개 변수 :

-e   将排除在寻找的范围之外。

-1  如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。

-f   将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案  放在资料库中。

-q  安静模式,不会显示任何错误讯息。

-n 至多显示 n个输出。

-r 使用正规运算式 做寻找的条件。

-o 指定资料库存的名称。

-d 指定资料库的路径

-h 显示辅助讯息

-V 显示程式的版本讯息

1.1.4 예제 :

모두는 SH 파일 검색 등 디렉토리로 시작 : 예 1

[root@CentOS7 ~#]locate /etc/sh       
/etc/shadow
/etc/shadow-
/etc/shells
[root@centos7 ~#]locate -r "/etc/\<sh"  # 正则,锚定词首
/etc/shadow
/etc/shadow-
/etc/shells
[root@centos7 ~#]

실시 예 2 : 케이스 무시

[root@centos7 ~#]locate -i ~/d
/root/Desktop/root/Documents/root/Downloads
/root/d1
/root/dd
/var/lib/pcp/pmdas/root/domain.h
[root@centos7 ~#]

예 3 : 데이터베이스를 업데이트

[root@centos7 ~#]locate ~/a
/root/anaconda-ks.cfg
[root@centos7 ~#]updatedb
[root@centos7 ~#]locate ~/a
/root/a.sh
/root/anaconda-ks.cfg
[root@centos7 ~#]

1.2 찾기

주요 목적 1.2.1

find 명령은 실시간 찾기, 지정된 경로를 찾을 횡단으로 문서의 완성이며,이 명령을 사용할 때 매개 변수를 선택하지 않을 경우, 현재 디렉토리에있는 파일과 하위 디렉토리를 찾아 표시합니다,뿐만 아니라, 매개 변수는 위치 문자열이 디렉토리 이름으로 처리되기 전에 당신이 찾고 싶어요. 실시간 이송 찾을 수 있기 때문에, 다음과 같은 기능을 찾을 : 정확한 실시간 검색, 검색은 읽기 전용으로 사용자 디렉토리를 느리게하고 권한을 실행할 수 있습니다.

1.2.2 구문을 찾을 수 있습니다 :

find [OPTION]... [查找路径] [查找条件] [处理动作]

검색 경로 : 대상 경로를 지정, 기본값은 현재 디렉토리입니다

검색어 : 지정된 검색 기준 등 표준 파일 이름, 크기, 유형, 권한 및이 될 수 있으며, 기본값은 지정된 경로에있는 모든 파일을 찾을 수 있습니다

조치 : 조건 파일, 화면에 기본 출력에 맞게 작업을 할

1.2.3 검색어

1. 根据文件名和inode查找
2. 根据属主、属组查找
3. 根据文件类型查找
4. 根据逻辑组合条件查找
5. 根据文件大小来查找
6. 根据时间戳来查找 
7. 根据权限来查找

1.2.4 처리 동작

1. -print: 默认动作,显示至屏幕
2. -ls: 类似于对查找到的文件执行 ls -l 命令
3. -delete: 删除查找到的文件
4. -fls file: 查找到的所有长格式的信息保存至指定文件中
5. -ok COMMMAND {} \;   对查找到的每个文件执行由COMMAND指定的命令,且都会交互式要求用户确认
6. -exec COMMAND {} \;  对查找到的每个文件执行由COMMAND指定的命令;
7. {}: 用于引用查找至的文件名称自身
8. find 传递查找到的文件至后面指定的命令时,查找到所有符号条件的文件一次性传递给后面的命令
9. 有些命令不能接受过多的参数,此时命令执行可能会失败,用 xargs 来规避此问题
    find |xargs COMMAND

1.2.5 공통 매개 변수

1.2.5.1 파일 이름과 아이 노드 종류 :

    -name "文件名称": 支持使用glob, *, ?, [], [^]

    -iname "文件名称": 不区分字母大小写

    -inum n: 按inode号查找

    -somefile name: 相同的inode号文件

    -links n: 链接数为n的文件

    -regex "PATTERN": 以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称

1.2.5.2 소유자 클래스는 그룹입니다 :

    -user USERNAME: 查找属主为指定用户(UID)的文件

    -group GROUPNAME: 查找属组为指定组(GID)的文件

    -uid UserID: 查找属主为指定的UID号的文件

    -gid GroupID: 查找属组为指定的GID号的文件

    -nouser: 查找没有属主的文件

    -nogroup: 查找没有属组的文件

1.2.5.3 파일 형식 카테고리 :

b      block (buffered) special

c      character (unbuffered) special

d      directory

p      named pipe (FIFO)f      regular file

l      symbolic  link

s      socket

조건 카테고리의 논리적 조합 1.2.5.4 :

조건의 조합 :

与:-a
或:-o
非:-not, !

모건의 법칙 :

(非P) 或(非Q) = 非(P且Q)
(非P) 且 (非Q) = 非(P或Q)

1.2.5.5 파일 크기 종류 :

-size [+|-]#UNIT
    常用单位:k,M,G 
#UNIT: (#-1,#]
    如:5M 表示 (4M,5M]
-#UNIT: [0,#-1]
    如:-5M 表示 [0,5M]
+#UNIT: (#,oo)
    如:+5M 表示 (6M,oo)

설명의 파일 크기 클래스 소개 : 왜 -size 5M 5M하지만 여전히 정확한 표현 (4M, 5M]를 찾을 메타 데이터의 크기를 포함하여, 파일이나 데이터의 크기 파일 크기를 의미 상상 찾을? ?뿐만 아니라, 문서가 특정 크기를 정확하게 거의 의미가 우리가 일반적으로 파일이 종종 고려 찾을 의미있는 메타 데이터 파일 사이즈의 크기,하지만 확실히 메타 데이터의 크기를 포함, 파일 크기는 데이터 파일의 크기; 그래서 여기에 단위의 부동 크기있을 것입니다.

1.2.5.6 타임 스탬프 카테고리 :

以”天”为单位:
    -atime [+|-]#        
        #: [#,#+1)
        +#: [#+1,oo)        
        -#: [0,#)
    -mtime    
    -ctime

以“分钟”为单位:
    -amin    
    -mmin    
    -cmin

타임 스탬프 클래스의 해석에 : -atime은 [3,4) 3 개 쇼,이 매우 좋은 설명 왜, 우리는 여기에 시간이 시간 대신 시간은 "일"과 "분"이라고 기간 참조 만 [3, 4) 완전히 사흘을 표현하기 위해이 하프 클로즈 반개 구간.

1.2.5.7 권한 카테고리 :

-perm [/|-]MODE
    MODE: 精确匹配权限
    /MODE: 任何一类(u,g,o)对象的权限中只要能一位匹配即可,属于或关系。以前用'+',CentOS 7以'/'替代之
    -MODE: 每一类对象都必须同时拥有指定权限,属于与关系 
    0:表示不关注

예 :

find -perm 644 表示要严格匹配644的文件
find -perm +222 表示u,g,o任何一类用户有写权限即匹配
find -perm -222 表示仅严格匹配写权限,即每个用户必须要有写权限
find -perm -002 表示仅严格匹配other用户的写权限

사용 1.2.6 예 :

예 1 : 지정된 디렉토리에 백업 구성 파일 및 확장 .ORG를 추가
[root@localhost ~]# find . -name "*.conf" -exec cp -r {} /testdir/{}.org \; 
[root@localhost ~]# cd /testdir/
[root@localhost testdir]# ls
a.conf.org  b.conf.org
[root@localhost testdir]#
예 2의 젊은 소유자로 임시 파일의 3 일 이상 시간이있다 :. 삭제할지 묻는 메시지가
[root@localhost ~]# find /tmp -ctime +3 -user young -exec rm -fr {} \;
[root@localhost ~]#
예 3 : 파일 찾기는 홈 디렉토리에 다른 사용자가 쓸 수
[root@localhost ~]# find ~ -perm -002
/root/num
[root@localhost ~]# find ~ -perm -002 -exec chmod o-w {} \;
[root@localhost ~]# ll num
--w--w---- 1 root root 35 Jan 21 05:55 num
예 4 : 메인 루트는 / var 디렉토리 하위 찾기, 모든 파일은 그룹 메일에 속하는
    [root@localhost ~]# find /var -user root  -group mail -ls #默认关系就是与
1179652    4 drwxrwxr-x   2 root     mail         4096 Jan 23 11:04 /var/spool/mail
예 5 : 루트에 속하지 않는에서 찾기 / var 디렉토리, LP, 모든 파일이 GDM
[root@localhost ~]# find /var ! -user root ! -user lp ! -user gdm
实例6:查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件
    [root@localhost ~]# find /var/ -mtime -7 ! -user root ! -user postfix -ls
1179676    4 drwx------   3 daemon   daemon       4096 Jan 23 11:04 /var/spool/at
524399    4 drwx------   2 nginx    nginx        4096 Jan 23 03:16 /var/log/nginx
524413    0 -rw-r--r--   1 nginx    root            0 Jan 23 03:16 /var/log/nginx/access.log
524391    0 -rw-r--r--   1 nginx    root            0 Jan 21 03:44 /var/log/nginx/error.log
132174    4 drwx------   3 nginx    nginx        4096 Jan 21 03:44 /var/lib/nginx
132175    4 drwx------   7 nginx    nginx        4096 Jan 21 03:44 /var/lib/nginx/tmp
132173    4 drwx------   2 nginx    root         4096 Jan 21 03:44 /var/lib/nginx/tmp/client_body
132219    4 drwx------   2 nginx    root         4096 Jan 21 03:44 /var/lib/nginx/tmp/proxy
132221    4 drwx------   2 nginx    root         4096 Jan 21 03:44 /var/lib/nginx/tmp/uwsgi
132222    4 drwx------   2 nginx    root         4096 Jan 21 03:44 /var/lib/nginx/tmp/scgi
132220    4 drwx------   2 nginx    root         4096 Jan 21 03:44 /var/lib/nginx/tmp/fastcgi
实例7:查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件
[root@bash ~]# find / -nouser -o -nogroup -a -atime -7
实例8:查找/etc目录下大于1M且类型为普通文件的所有文件
[root@bash ~]# find /etc/ -size +1M -type f
/etc/selinux/targeted/policy/policy.29
/etc/udev/hwdb.bin
实例9:查找/etc目录下所有用户都没有写权限的文件
[root@bash ~]# find /etc/ ! -perm /222
/etc/pki/ca-trust/extracted/java/cacerts
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem
/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem
/etc/lvm/profile/cache-mq.profile
/etc/lvm/profile/cache-smq.profile
/etc/lvm/profile/command_profile_template.profile
/etc/lvm/profile/metadata_profile_template.profile
/etc/lvm/profile/thin-generic.profile
/etc/lvm/profile/thin-performance.profile
/etc/openldap/certs/password
/etc/gshadow
/etc/dbus-1/system.d/cups.conf
/etc/shadow
/etc/gshadow-
/etc/ld.so.conf.d/kernel-3.10.0-327.el7.x86_64.conf
/etc/shadow-
/etc/udev/hwdb.bin
/etc/machine-id
/etc/pam.d/cups
/etc/sudoers
实例10:查找/etc目录下至少有一类用户没有执行权限的文件
[root@bash ~]# find /etc/ ! -perm -111 # 至少有一类用户没有就是所有用户都没有
实例11:.查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件
[root@bash ~]# find /etc/init.d -perm -113
/etc/init.d

或者

[root@bash ~]# find /etc/init.d -perm -111 -perm -002
/etc/init.d
实例12:摩根定律找出/tmp目录下,属主不是root,且文件名不以f开头的文件
[root@centos7 ~]#find /tmp \( -not -user root -a -not -name 'f*' \) -ls
即
[root@centos7 ~]#find /tmp -not \( -user root -o -name 'f*' \) -ls
实例13:查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件
[root@bash ~]# find /etc -path '/etc/sane.d' -prune -o -name '*.conf'
实例14:匹配文件路径或文件
[root@bash ~]# find /usr/ -path '*local'
/usr/bin/abrt-action-analyze-ccpp-local
/usr/share/doc/postfix-2.10.1/examples/qmail-local
/usr/share/aclocal
/usr/libexec/postfix/local
/usr/local
实例15:基于正则表达式匹配文件路径
[root@bash ~]# find . -regex ".*txt$"              
./.mozilla/firefox/4dqu966q.default/revocations.txt
./vimrc/spf13-vim/LICENSE.txt
./a.txt

1.3 which

1.3.1 命令功能:

which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

1.3.2 命令格式:

which 可执行文件名称 

1.3.3 命令参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p  与-n参数相同,但此处的包括了文件的路径。

-w  指定输出时栏位的宽度。

-V  显示版本信息

1.3.4 使用实例:

实例1:查找文件、显示命令路径

命令:

which lsmod

输出:

[root@localhost ~]# which pwd

/bin/pwd

[root@localhost ~]#  which adduser

/usr/sbin/adduser

[root@localhost ~]#

说明:

which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!

实例2:用 which 去找出 which

命令:

which which

输出:

[root@localhost ~]# which which

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot  --show-tilde'

  /usr/bin/which

[root@localhost ~]#

说明:

竟然会有两个 which ,其中一个是 alias 这就是所谓的『命令别名』,意思是输入 which 会等於后面接的那串命令!

二.文件打包与压缩

常用打包压缩格式

.zip  .gz  .bz2  .tar  .tar.gz  .tar.bz2

2.1 .zip 格式

1.压缩

压缩文件

zip 压缩文件名 源文件

压缩目录

zip -r 压缩文件名 源目录
  • 实例
[vagrant/tmp] ]$zip a.zip a.md
  adding: a.md (stored 0%)
[vagrant/tmp] ]$zip -r abc.zip abc
  adding: abc/ (stored 0%)
  adding: abc/def/ (stored 0%)
  adding: abc/def/ghi/ (stored 0%)
[vagrant/tmp] ]$ll
drwxrwxr-x 3 vagrant       vagrant       4.0K Apr 19 00:53 abc/
-rw-rw-r-- 1 vagrant       vagrant        454 Apr 19 00:55 abc.zip
-rw-rw-r-- 1 vagrant       vagrant          0 Apr 19 00:53 a.md
-rw-rw-r-- 1 vagrant       vagrant        158 Apr 19 00:55 a.zip

2. 解压缩

unzip 压缩文件名 [-d <文件解压缩后所要存储的目录>]
  • 实例
[vagrant/tmp] ]$mkdir zip
[vagrant/tmp] ]$unzip a.zip -d zip
Archive:  a.zip
 extracting: zip/a.md
[vagrant/tmp] ]$unzip abc.zip -d zip
Archive:  abc.zip
   creating: zip/abc/
   creating: zip/abc/def/
   creating: zip/abc/def/ghi/
[vagrant/tmp] ]$ll zip
drwxrwxr-x 3 vagrant vagrant 4.0K Apr 19 00:53 abc/
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 00:53 a.md

2.2 .gz 格式

1. 压缩

压缩文件

gzip 源文件

注意:源文件会消失!

gzip -c 源文件 > 压缩文件

压缩文件,源文件保留

gzip -r 目录

压缩目录下所有子文件,但是不能压缩目录

压缩目录

gzip 不能压缩目录

  • 实例
[vagrant/tmp] ]$gzip -c a.md > a.md.gz
[vagrant/tmp] ]$ll
drwxrwxr-x 3 vagrant       vagrant       4.0K Apr 19 00:53 abc/
-rw-rw-r-- 1 vagrant       vagrant          0 Apr 19 00:53 a.md
-rw-rw-r-- 1 vagrant       vagrant         25 Apr 19 04:11 a.md.gz
[vagrant/tmp] ]$ll abc
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:12 a
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:12 b
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:12 c
[vagrant/tmp] ]$gzip -r abc
[vagrant/tmp] ]$ll abc
-rw-rw-r-- 1 vagrant vagrant   22 Apr 19 04:12 a.gz
-rw-rw-r-- 1 vagrant vagrant   22 Apr 19 04:12 b.gz
-rw-rw-r-- 1 vagrant vagrant   22 Apr 19 04:12 c.gz

2. 解压缩

gzip -d 压缩文件

gunzip 压缩文件
  • 实例
[vagrant/tmp/tmp] ]$gzip -d a.md.gz
[vagrant/tmp/tmp] ]$ll
drwxrwxr-x 3 vagrant vagrant 4.0K Apr 19 04:13 abc/
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:11 a.md
[vagrant/tmp/tmp] ]$gzip -dr abc/
[vagrant/tmp/tmp] ]$ll abc
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:12 a
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:12 b
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:12 c

2.3 .bz2 格式

1. 压缩

压缩文件

1. bzip2 源文件

注意:源文件会消失!

2. bzip2 -k 源文件

压缩文件,源文件保留

压缩目录

bzip2 不能压缩目录

  • 实例
[vagrant/tmp/tmp] ]$bzip2 -k a.md
[vagrant/tmp/tmp] ]$ll
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:11 a.md
-rw-rw-r-- 1 vagrant vagrant   14 Apr 19 04:11 a.md.bz2
[vagrant/tmp/tmp] ]$rm a.md.bz2
[vagrant/tmp/tmp] ]$bzip2 a.md
[vagrant/tmp/tmp] ]$ll
-rw-rw-r-- 1 vagrant vagrant   14 Apr 19 04:11 a.md.bz2

2. 解压缩

bzip2 -d 压缩文件

解压缩,默认不保留压缩文件。加 -k 可保留压缩文件

gunzip 压缩文件

解压缩,默认不保留压缩文件。加 -k 可保留压缩文件

  • 实例
[vagrant/tmp/tmp] ]$bzip2 -dk a.md.bz2
[vagrant/tmp/tmp] ]$ll
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:11 a.md
-rw-rw-r-- 1 vagrant vagrant   14 Apr 19 04:11 a.md.bz2
[vagrant/tmp/tmp] ]$rm a.md
[vagrant/tmp/tmp] ]$bunzip2 -k a.md.bz2
[vagrant/tmp/tmp] ]$ll
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:11 a.md
-rw-rw-r-- 1 vagrant vagrant   14 Apr 19 04:11 a.md.bz2
[vagrant/tmp/tmp] ]$rm a.md
[vagrant/tmp/tmp] ]$bzip2 -d a.md.bz2
[vagrant/tmp/tmp] ]$ll
-rw-rw-r-- 1 vagrant vagrant    0 Apr 19 04:11 a.md

2.4 .tar 格式

1. 打包

tar -cvf 打包文件名 源文件或目录
  • 选项

-c : 打包
-v : 显示打包过程
-f : 指定打包后的文件名

  • 实例
[vagrant/tmp/tmp] ]$tar -cvf abc.tar abc
abc/
abc/def/
abc/def/ghi/
abc/a
abc/b
abc/c
[vagrant/tmp/tmp] ]$ll
drwxrwxr-x 3 vagrant vagrant 4.0K Apr 19 04:22 abc/
-rw-rw-r-- 1 vagrant vagrant  10K Apr 19 07:02 abc.tar

2. 解打包

tar -xvf 打包文件名
  • 选项

-x : 解打包

  • 实例
vagrant/tmp/tmp] ]$tar -xvf abc.tar
abc/
abc/def/
abc/def/ghi/
abc/a
abc/b
abc/c
[vagrant/tmp/tmp] ]$ll
drwxrwxr-x 3 vagrant vagrant 4.0K Apr 19 04:22 abc/
-rw-rw-r-- 1 vagrant vagrant  10K Apr 19 07:02 abc.tar

2.5 .tar.gz 格式

其实,.tar.gz 格式是先将文件或目录打包文 .tar 格式,再压缩为 .gz 格式

1. 压缩

tar -zcvf 压缩包名.tar.gz 源文件
  • 选项

-z : 压缩为 .tar.gz 格式

2. 解压缩

tar -zxvf 压缩包名.tar.gz
  • 选项

-x : 解压缩
-t : 查看压缩保内文件,但是不解压缩

  • 实例
[vagrant/tmp/tmp] ]$tar -zcvf abc.tar.gz abc
abc/
abc/def/
abc/def/ghi/
abc/a
abc/b
abc/c
[vagrant/tmp/tmp] ]$ll
total 8.0K
drwxrwxr-x 3 vagrant vagrant 4.0K Apr 19 04:22 abc/
-rw-rw-r-- 1 vagrant vagrant  204 Apr 19 07:27 abc.tar.gz
[vagrant/tmp/tmp] ]$rm -rf abc
[vagrant/tmp/tmp] ]$tar -ztvf abc.tar.gz
drwxrwxr-x vagrant/vagrant   0 2018-04-19 04:22 abc/
drwxrwxr-x vagrant/vagrant   0 2018-04-19 00:52 abc/def/
drwxrwxr-x vagrant/vagrant   0 2018-04-19 00:52 abc/def/ghi/
-rw-rw-r-- vagrant/vagrant   0 2018-04-19 04:12 abc/a
-rw-rw-r-- vagrant/vagrant   0 2018-04-19 04:12 abc/b
-rw-rw-r-- vagrant/vagrant   0 2018-04-19 04:12 abc/c
[vagrant/tmp/tmp] ]$ll
total 4.0K
-rw-rw-r-- 1 vagrant vagrant 204 Apr 19 07:27 abc.tar.gz
[vagrant/tmp/tmp] ]$tar -zxvf abc.tar.gz
abc/
abc/def/
abc/def/ghi/
abc/a
abc/b
abc/c
[vagrant/tmp/tmp] ]$ll
total 8.0K
drwxrwxr-x 3 vagrant vagrant 4.0K Apr 19 04:22 abc/
-rw-rw-r-- 1 vagrant vagrant  204 Apr 19 07:27 abc.tar.gz

2.6 .tar.bz2 格式

其实,.tar.bz2 格式是先将文件或目录打包文 .tar 格式,再压缩为 .bz2 格式

1. 压缩

tar -jcvf 压缩包名.tar.bz2 源文件
  • 选项

-j : 压缩为 .tar.bz2 格式

2. 解压缩

tar -jxvf 压缩包名.tar.bz2
  • 选项

-x : 解压
-t : 查看压缩保内文件,但是不解压缩
-C : 指定解压的目录(注意,该选项必须放在后面)

  • 实例
[vagrant/tmp/tmp] ]$tar -jcvf abc.tar.bz2 abc
abc/
abc/def/
abc/def/ghi/
abc/a
abc/b
abc/c
[vagrant/tmp/tmp] ]$ll
total 8.0K
drwxrwxr-x 3 vagrant vagrant 4.0K Apr 19 04:22 abc/
-rw-rw-r-- 1 vagrant vagrant  210 Apr 19 07:33 abc.tar.bz2
[vagrant/tmp/tmp] ]$tar -jtvf abc.tar.bz2
drwxrwxr-x vagrant/vagrant   0 2018-04-19 04:22 abc/
drwxrwxr-x vagrant/vagrant   0 2018-04-19 00:52 abc/def/
drwxrwxr-x vagrant/vagrant   0 2018-04-19 00:52 abc/def/ghi/
-rw-rw-r-- vagrant/vagrant   0 2018-04-19 04:12 abc/a
-rw-rw-r-- vagrant/vagrant   0 2018-04-19 04:12 abc/b
-rw-rw-r-- vagrant/vagrant   0 2018-04-19 04:12 abc/c
[vagrant/tmp/tmp] ]$tar -jxvf abc.tar.bz2 -C /tmp
abc/
abc/def/
abc/def/ghi/
abc/a
abc/b
abc/c
[vagrant/tmp/tmp] ]$ll /tmp/
drwxrwxr-x 3 vagrant       vagrant       4.0K Apr 19 04:22 abc/
drwxrwxr-x 3 vagrant       vagrant       4.0K Apr 19 07:33 tmp/

추천

출처www.cnblogs.com/MessiXiaoMo3334/p/11372780.html