一.文件查找

locate与find是经常使用的Linux 命令,刚接触Linux时对这两个命令的使用傻傻的分不清。现在我们来对比一下两个命令到底有哪些区别。

1.1 locate

locate让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行。

1.1.1 命令格式:

Locate [选择参数] [样式]

1.1.2 命令功能:

locate命令可以在搜寻数据库时快速找到档案,locate为模糊查找,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)

locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,locate查询文件时,会去搜索/var/lib/mlocate/mlocage.db,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如”” 或”?”等)来指定范本样式,如指定范本为kcpaner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner**则会列出该目录下包括 子目录在内的所有档案。

locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。

1.1.3 命令参数:

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

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

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

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

-n 至多显示 n个输出。

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

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

-d 指定资料库的路径

-h 显示辅助讯息

-V 显示程式的版本讯息

1.1.4 使用实例:

实例1:搜索etc目录下所有以sh开头的文件

[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 find

1.2.1 主要用途

find命令是一个实时查找工具,通过遍历指定路径而完成对文件的查找;在使用该命令时,如果不选定参数,则在当前目录下查找子目录与文件并显示之;另外,任何位于参数之前的字符串,都将视为欲查找的目录名。由于是实时遍历查找,find有如下特性:精确实时查找,速度慢可能只搜索用户具备读取和执行权限的目录。

1.2.2 find语法:

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 文件名和inode类:

    -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个单位的浮动。

1.2.5.6 时间戳类:

以”天”为单位:
-atime [+|-]#
#: [#,#+1)
+#: [#+1,oo)
-#: [0,#)
-mtime
-ctime 以“分钟”为单位:
-amin
-mmin
-cmin

关于时间戳类的解释:为什么-atime 3 表示的是 [3,4),这个就很好解释了,我们这儿所说的时间是指时间段而非时刻,一“天”与一“分钟”都是指一个时间段,只有[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天以上的属主为young的临时文件
[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,且属组为mail的所有文件
    [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目录下不属于root、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/

Linux文件查找与打包的更多相关文章

  1. Linux正则表达式、shell基础、文件查找及打包压缩

    Linux正则表达式.shell基础.文件查找及打包压缩 一.正则表达式 Linux正则表达式分为2类: 1.基本正则表达式(BRE) 2.扩展正则表达式(ERE) 两者的区别: 1.使用扩展正则表达 ...

  2. Linux文件查找.md

    Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 w ...

  3. Linux文件查找命令find用法整理(locate/find)

    Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2 ...

  4. linux文件查找find命令

    linux文件查找find命令 1.文件查找 基本介绍 在文件系统上查找符合条件的文件 linux上常见的文件查找工具:find命令 查找分类 实时查找 精确查找 基本语法 find  [option ...

  5. Linux文件压缩与打包笔记

    linux 文件压缩与打包笔记 压缩原理:通过算法去掉空位,1Bytes=8bits , 可能存储的真正有用的数据并没有占满一个字节空间 , 还有就是可能有重复的数据,通过某种算法从这些方面进行压缩处 ...

  6. linux 文件查找,which,whereis,locate,find

    linux 文件查找,which,whereis,locate,find 一:which 主要用于查找可执行命令的所在位置: 如图,查找命令 ls的目录: 二:whereis 主要用于查找命令的帮助文 ...

  7. Linux文件查找命令find,xargs详述【转】

    转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Li ...

  8. linux - 文件查找及压缩

    文件查找: 1.  which    查找可以执行文件,只搜索$PATH里的目录 $ which ls /bin/ls which只搜索$PATH里的目录,如果搜索当前目录的文件是没有任何结果的 $ ...

  9. Linux文件查找

    Linux下查找文件的命令有两个; locate: find : locate这个命令对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了查 找文件速度很快,但是locate ...

随机推荐

  1. 使用Fiddler进行HTTP流量分析

    - 安装 Fiddler是一款免费软件,可以到其官网下载,地址是https://www.telerik.com/fiddler,也可以从我的网盘中下载,发送"fiddler"获取下 ...

  2. 【亲测有效】Ubuntu18.04 sudo apt update无法解析域名的解决方案

    问题描述如下: 拿起了封尘已久的ThinkPad,输入 sudo apt update 的时候,发现这个命令变得不好使了,具体出现的问题如下图所示: #( 09/08/19@ 2:44下午 )( py ...

  3. GIL全局解释器锁、死锁、递归锁、线程队列

    目录 GIL全局解释锁 多线程的作用 测试计算密集型 IO密集型 死锁现象 递归锁 信号量(了解) 线程队列 GIL全局解释锁 GIL本质上是一个互斥锁. GIL是为了阻止同一个进程内多个进程同时执行 ...

  4. Mysql 连接提示 Client does not support authentication protocol requested by server 客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端

    由于查阅了很多百度文档发现很多方法比较复杂,所以写个备忘: 首先,进入MySQL 8.0Command Line Client -Unicode,输入密码,登录进去. 然后,在命令行输入:ALTER ...

  5. thinkphp3.2生成二维码

    public function createCode() { Vendor('phpqrcode.phpqrcode'); $object = new \QRcode(); $url = 'http: ...

  6. 爬虫scrapy组件 请求传参,post请求,中间件

    post请求 在scrapy组件使用post请求需要调用 def start_requests(self): 进行传参再回到 yield scrapy.FormRequest(url=url,form ...

  7. 好用的代码统计小工具SourceCounter(下载)

    SourceCounter下载链接 https://pan.baidu.com/s/12Cg51L0hRn5w-m1NQJ-Xlg 提取码:i1cd 很多时候我们需要统计自己所写的代码的数量.举个栗子 ...

  8. day3_7.1

    1.python的注释 python中为了使代码更容易被人看懂,提高团队开发效率,可使用注释.代码中的注释不加入编译中. 注释有单行注释,如 #这是一段注释 和多行注释: ''' 这是一行注释 ''' ...

  9. appium常使用的命令

    1.查看apk安装包的appPackagehe和appActivity aapt dump badging E:\taobao.apk > E:\taobao.txt   -- 将appPack ...

  10. 训练自己数据-xml文件转voc格式

    首先我们有一堆xml文件 笔者是将mask-rcnn得到的json标注文件转为xml的 批量json转xml方法:https://www.cnblogs.com/bob-jianfeng/p/1112 ...