从零开始缓慢深入Linux - 基础指令篇(2)

Linux 查找文件

查找常用指令

指令概述
which显示命令的绝对路径
whereis显示命令的二进制文件、帮助文档等存放位置
locate根据文件名称查找文件
find根据指定条件查找文件
which

which [options][--] programname [...]

[root@foundation0 ~]# which test
/bin/test
[root@foundation0 ~]# which alias
/bin/alias
whereis

whereis [options][-BMS directory... -f] name...

参数作用
-b只寻找 binary 二进制 格式的文件
-m只寻找在 说明文件 manual 路径下的文件
-s只寻找 source 来源的文件
-u搜寻不在上述三个项目当中的其他特殊文件
-l查看 whereis 可搜寻的路径
[ root@www ~]# whereis /etc/passwd
passwd: /usr/bin/passwd /etc/passwd.OLD /etc/passwd /usr/share/man/man1/passwd.1.gz
/usr/share/man/man5/passwd.5.gz
[ root@www ~]# whereis man
man: /usr/bin/man /etc/man.config /usr/share/man /usr/share/man/man7/man.7.gz
/usr/share/man/man1p/man.1p.gz /usr/share/man/man1/man.1.gz
locate

locate [OPTION]... PATTERN...

参数作用
-i忽略大小写的差异 ;
-r后面可接正规表示法的显示方式
  • 安装软件 mlocate 之后才会有 updatedb 命令和 locate 命令,最小化安装的 rhel 系统默认不安装。
  • locate 寻找的数据是由『已建立的数据库 /var/lib/mlocate/mlocate.db 里面的数据所搜
    寻到 , 所以不用直接在去硬盘中存取数据 , 速度快
  • updatedb: 根据 /etc/updatedb.conf 的设定去搜寻系统硬盘内的文件名 , 并更新/var/lib/mlocate.mlocate.db
  • PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp" 设定了搜寻的目录
find

find [-H][-L] [-P][-D debugopts] [-Olevel][path...] [expression]

选项与参数 :

  • 与时间有关 :-atime, -ctime ,-mtime , 以 -mtime 说明
    • -mtime n
    • -mtime +n
    • -mtime -n
    • -newer file : 列出比 file 还要新的档案
if n= 2 now= 2015/12/24
then
-mtime 2:  2015/12/22 当天内容改过的文件
-mtime +2: 2 天之前 , 2015/12/22 之前被容被改过的文件 , 及 21\20\19...
-mtime -2: 2 天以内 , 2015/12/24 和 2015/12/23 号修改过的文件
<--|--|--|--|--|--|--|--|--|--|--|2-|--|--|
<----------------------------+2->|--|--|--|
<--|--|--|--|--|--|--|--|--|--|--|--|<-2->|
11 12 13 14 15 16 17 18 19 20 21 22 23 24 现在
  • 与用户和组有关
    • uid n
    • gid n
    • user name
    • group name
    • nouser
    • nogroup
[ root@www ~]# find /tmp -user jenny
/tmp/jenny
/tmp/test1
  • 与名称有关
    • name filename: 搜寻文件名为 filename 的文件 ;
[ root@www ~]# find /tmp -name "*test*"
/tmp/testx
/tmp/test123
  • 与大小有关
    • size [ ±]SIZE: SIZE 的规格有 1)c: 代表 byte 2)k: 代表 1024bytes w: 字数 , 占两个字符 3)M\G
find / -size +5M -size -7M 2> /dev/null  
# /dev/null称为垃圾桶文件,往里面丢数据不会占用磁盘空间
# 该命令只查找5-7M之间的文件大小
  • 与类型有关
    • type TYPE:f 普通文件 d 目录 l 链接文件
[ root@www ~]# find /tmp -type f
/tmp/pulse-BzLrQ7uHulwz/pid
/tmp/.X0-lock
/tmp/orbit-root/bonobo-activation-server-23d28d39cfff8983f6cac2ca00000055-ior
/tmp/orbit-root/bonobo-activation-register-23d28d39cfff8983f6cac2ca00000055.lock
/tmp/lurakm9.tmp/luraktg.tmp
/tmp/lurakm9.tmp/lurakt2.tmp
/tmp/lurakm9.tmp/lurakvs.tmp
  • 与权限有关
    • perm mode : 文件权限『刚好等于』 mode 的档案 mode 范围 : 7777 ~ 0000
    • -perm -mode: 文件权限『必须要全部囊括 mode 权限』
[root@jenny /]# find / -user jenny -perm -200
find: ‘/proc/24068/task/24068/fd/6’: No such file or directory
find: ‘/proc/24068/task/24068/fdinfo/6’: No such file or directory
find: ‘/proc/24068/fd/5’: No such file or directory
find: ‘/proc/24068/fdinfo/5’: No such file or directory
/var/spool/mail/jenny
/tmp/jennyfile
/home/jenny
/home/jenny/.bash_logout
/home/jenny/.bash_profile
/home/jenny/.bashrc
/home/jenny/.bash_history
[root@jenny /]#
  • 额外动作
    • exec [ 命令 ] : 后面可再接额外的命令来处理搜寻到的结果,非交互式
    • ok [命令]: 后面可再接额外的命令来处理搜寻到的结果,交互式

格式:find [path] -exec [cmd] {} \;

格式:find [path] -ok [cmd] {} \;

[ root@www ~]# find /tmp -name "test*" -exec ls -l {} \;

Linux压缩打包

压缩的意义

  • 节省磁盘空间,提升磁盘利用率
  • 避免带宽占用过多,提升文件传输效率

压缩打包命令

1.zip命令用法

确认已经安装了zip程序

[root@mastera0 zip-3.0]# which zip
/usr/bin/zip
[root@mastera0 zip-3.0]# head -n 18 /usr/share/doc/zip-3.0/README
Zip 3.0 is the first Zip update adding large file support. For now Zip 2.3x
remains available and supported, but users should switch to this new release.
Testing for Zip 3.0 has focused mainly on Unix, VMS, Max OS X, and Win32,
and some other ports may not be fully supported yet. If you find your
favorite port is broke, send us the details or, better, send bug fixes. It's
possible that support for some older ports may be dropped in the future.
Copyright (c) 1990-2008 Info-ZIP. All rights reserved.
See the accompanying file LICENSE (the contents of which are also included
in unzip.h, zip.h and wiz.h) for terms of use. If, for some reason, all
of these files are missing, the Info-ZIP license also may be found at:
ftp://ftp.info-zip.org/pub/infozip/license.html and
http://www.info-zip.org/pub/infozip/license.html.

zip 命令可以用来解压缩文件,或者对文件进行打包操作。zip 是个使用广泛的压缩程序,文件经它压缩后会另外产生具有 “ .zip” 扩展名的压缩文件。

语法 zip( 选项 )( 参数 )

选项

-A :调整可执行的自动解压缩文件;
-b< 工作目录 > :指定暂时存放文件的目录;
-c :替每个被压缩的文件加上注释;
-d :从压缩文件内删除指定的文件;
-D :压缩文件内不建立目录名称;
-f :此参数的效果和指定 “ -u” 参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文
件内,使用本参数会一并将其加入压缩文件中;
-F :尝试修复已损坏的压缩文件;
-g :将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-h :在线帮助;
-i< 范本样式 > :只压缩符合条件的文件;
-j :只保存文件名称及其内容,而不存放任何目录名称;
-J :删除压缩文件前面不必要的数据;
-k :使用 MS-DOS 兼容格式的文件名称;
-l :压缩文件时,把 LF 字符置换成 LF+CR 字符;
-ll :压缩文件时,把 LF+cp 字符置换成 LF 字符;
-L :显示版权信息;
-m :将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-n< 字尾字符串 > :不压缩具有特定字尾字符串的文件;
-o :以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q :不显示指令执行过程;
-r :递归处理,将指定目录下的所有文件和子目录一并处理;
-S :包含系统和隐藏文件;
-t< 日期时间 > :把压缩文件的日期设成指定的日期;
-T :检查备份文件内的每个文件是否正确无误;
-u :更换较新的文件到压缩文件内;
-v :显示指令执行过程或显示版本信息;
-V :保存 VMS 操作系统的文件属性;
-w :在文件名称里假如版本编号,本参数仅在 VMS 操作系统下有效;
-x< 范本样式 > :压缩时排除符合条件的文件;
-X :不保存额外的文件属性;
-y :直接保存符号连接,而非该链接所指向的文件,本参数仅在 UNIX 之类的系统下有效;
-z :替压缩文件加上注释;
-$ :保存第一个被压缩文件所在磁盘的卷册名称;
-< 压缩效率 > :压缩效率是一个介于 1~9 的数值。
参数
zip 压缩包:指定要创建的 zip 压缩包;
文件列表:指定要压缩的文件列表。
实例
zip -q -r html.zip /home/Blinux/html
zip -q -r html.zip *

unzip 的用法

unzip 命令用于解压缩由 zip 命令压缩的 “ .zip” 压缩包

语法 unzip( 选项 )( 参数 )

选项

-c :将解压缩的结果显示到屏幕上,并对字符做适当的转换;
-f :更新现有的文件;
-l :显示压缩文件内所包含的文件;
-p :与 -c 参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
-t :检查压缩文件是否正确;
-u :与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
-v :执行时显示详细的信息;
-z :仅显示压缩文件的备注文字;
-a :对文本文件进行必要的字符转换;
-b :不要对文本文件进行字符转换;
-C :压缩文件中的文件名称区分大小写;
-j :不处理压缩文件中原有的目录路径;
-L :将压缩文件中的全部文件名改为小写;
-M :将输出结果送到 more 程序处理;
-n :解压缩时不要覆盖原有的文件;
-o :不必先询问用户, unzip 执行后覆盖原有的文件;
-P< 密码 > :使用 zip 的密码选项;
-q :执行时不显示任何信息;
-s :将文件名中的空白字符转换为底线字符;
-V :保留 VMS 的文件版本信息;
-X :解压缩时同时回存文件原来的 UID/GID ;
-d< 目录 > :指定文件解压缩后所要存储的目录;
-x< 文件 > :指定不要处理 .zip 压缩文件中的哪些文件;
-Z : unzip-Z 等于执行 zipinfo 指令

参数 压缩包:指定要解压的 “ .zip” 压缩包。

实例

unzip test.zip
unzip -v test.zip
unzip -n test.zip -d /tmp
2. gzip 的用法
语法 gzip( 选项 )( 参数 )

选项

-a 或 —— ascii :使用 ASCII 文字模式;
-d 或 --decompress 或 ----uncompress :解开压缩文件;
-f 或 —— force :强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h 或 —— help :在线帮助;
-l 或 —— list :列出压缩文件的相关信息;
-L 或 —— license :显示版本与版权信息;
-n 或 --no-name :压缩文件时,不保存原来的文件名称及时间戳记;
-N 或 —— name :压缩文件时,保存原来的文件名称及时间戳记;
-q 或 —— quiet :不显示警告信息;
-r 或 —— recursive :递归处理,将指定目录下的所有文件及子目录一并处理;
-S 或 < 压缩字尾字符串 > 或 ----suffix< 压缩字尾字符串 > :更改压缩字尾字符串;
-t 或 —— test :测试压缩文件是否正确无误;
-v 或 —— verbose :显示指令执行过程;
-V 或 —— version :显示版本信息;
-< 压缩效率 > :压缩效率是一个介于 1~9 的数值,预设值为 “ 6” ,指定愈大的数值,压缩效率就会
愈高;
--best :此参数的效果和指定 “ -9” 参数相同;
--fast :此参数的效果和指定 “ -1” 参数相同。

参数 文件列表:指定要压缩的文件或指定要解压的文件。。

实例

gzip * 将当前目录下的每个文件都压缩成 .gz 文件
gzip testtest 文件压缩成 test.gz 文件并删除源文件
gzip -rv /tmp 第归压缩目录中的所有文件,压缩成 .gz 结尾的文件,并显示指令执行过程
gzip -dr /tmp 第归解压 /tmp 目录下的 .gz 结尾的文件

gunzip 的用法

语法 gunzip( 选项 )( 参数 )

选项

-a 或 —— ascii :使用 ASCII 文字模式;
-c 或 --stdout 或 --to-stdout :把解压后的文件输出到标准输出设备;
-f 或 -force :强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h 或 —— help :在线帮助;
-l 或 —— list :列出压缩文件的相关信息;
-L 或 —— license :显示版本与版权信息;
-n 或 --no-name :解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理;
-N 或 —— name :解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开
的文件上;
-q 或 —— quiet :不显示警告信息;
-r 或 —— recursive :递归处理,将指定目录下的所有文件及子目录一并处理;
-S 或 < 压缩字尾字符串 > 或 ----suffix< 压缩字尾字符串 > :更改压缩字尾字符串;
-t 或 —— test :测试压缩文件是否正确无误;
-v 或 —— verbose :显示指令执行过程;
-V 或 —— version :显示版本信息;

参数 文件列表:指定要解压的压缩包。

实例
gzip -d test.gz
gunzip test.gz
效果一样
3. bzip2 的用法
语法 bzip2( 选项 )( 参数 )

选项

-c 或 —— stdout :将压缩与解压缩的结果送到标准输出;
-d 或 —— decompress :执行解压缩;
-f 或 -force : bzip2 在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若
要覆盖。请使用此参数;
-h 或 —— help :在线帮助;
-k 或 —— keep : bzip2 在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s 或 —— small :降低程序执行时内存的使用量;
-t 或 —— test :测试 .bz2 压缩文件的完整性;
-v 或 —— verbose :压缩或解压缩文件时,显示详细的信息;
-z 或 —— compress :强制执行压缩;
-V 或 —— version :显示版本信息;
--repetitive-best :若文件中有重复出现的资料时,可利用此参数提高压缩效果;
--repetitive-fast :若文件中有重复出现的资料时,可利用此参数加快执行效果。

参数 文件列表:指定要压缩的文件或指定要解压的文件。

实例

bzip2 test 压缩 test 文件,生成压缩文件 test.bz2 ,并删除源文件
bzip2 -k test 压缩 test 文件,生成压缩文件 test.bz2 ,并保留源文件
bzip2 -d test.bz2 解压文件
bunzip2 test.bz2 解压文件

bunzip2 的用法

[root@mastera0 ~]# which bzip2
/usr/bin/bzip2
[root@mastera0 ~]# which bunzip2
/usr/bin/bunzip2
[root@mastera0 ~]# ll -i /usr/bin/bzip2
33853111 -rwxr-xr-x. 1 root root 36752 Jul 31 2014 /usr/bin/bzip2
[root@mastera0 ~]# ll -i /usr/bin/bunzip2
34293684 lrwxrwxrwx. 1 root root 5 Jun 23 13:50 /usr/bin/bunzip2 -> bzip2

bunzip2 [ -fkvsVL ] [ filenames ... ]

-f 或 --force :解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
-k 或 --keep :在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
-s 或 --small :降低程序执行时,内存的使用量;
-v 或 --verbose :解压缩文件时,显示详细的信息;
-l , --license , -V 或 —— version :显示版本信息。
4. xz 命令用法
语法 xz ( 选项 )( 参数 )

选项

-z, --compress
force compression 强制压缩
-d, --decompress, --uncompress
force decompression 解开压缩文件
-t, --test test compressed file integrity 测试压缩文件是否正确无误
-l, --list list information about .xz files 列出压缩文件的相关信息
-k, --keep keep (don't delete) input files 不删除源文件
-f, --force force overwrite of output file and (de)compress links 强制压缩,覆盖输出文件同名的文件
-c, --stdout, --to-stdout write to standard output and don't delete input files 写入标准输出,不要删除输入文件
-0 ... -9 compression preset; default is 6; take compressor *and* decompressor memory usage into account before using 7-9! 压缩效率是一个介于
1~9 的数值,预设值为 “ 6” ,指定愈大的数值,压缩效率就会愈高;解压由县考虑使用 7-9
-e, --extreme try to improve compression ratio by using more CPU time; does not affect decompressor memory requirements 通过使用更多的处理器时间
来提高压缩比;不影响解压时的内存需求
-T, --threads=NUM use at most NUM threads; the default is 1; set to 0 to use the number of processor cores 最多使用的线程数量,默认为 1 ,如果设置为
0 去使用处理器内核的数量
-q, --quiet suppress warnings; specify twice to suppress errors too 抑制警告;指定两次
以抑制错误
-v, --verbose be verbose; specify twice for even more verbose
-h, --help display this short help and exit
-H, --long-help display the long help (lists also the advanced options)
-V, --version display the version number and exit

参数 文件列表:指定要压缩的文件列表。

实例
xz test 压缩一个文件 test ,压缩成功后删除源文件
xz -d -k test.xz 解压 test.xz 文件, -k 参数保证源文件不被删除
xz -l test.xz 查看基本信息,包括压缩率等
xz -k7 test 使用参数 -0, -1, -2, ... -6, ... -9 或参数 --fast, --best 设定压缩率。 xz 命令的默认为-6 。
借助 xargs 命令并行压缩多文件。下面的命令行可以将 /var/log 目录下所有的扩展名为 .log 的文件压缩。通过 xargs 命令同时运行多个 xz 进行压缩。
find /var/log -type f -iname "*.log" -print0 | xargs -P4 -n16 xz -T1
注意:运行此命令须有 root 权限。

5. tar命令用法

tar 命令可以为 linux 的文件和目录创建档案。利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在用户可以在任何设备上创建档案。利用 tar 命令可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

语法 tar ( 选项 )( 参数 )
用法:
        打包   tar -cf /tmp/test.tar [file]
        解包   tar -xf /tmp/test.tar
        打包并压缩  tar -czf /tmp/test.tar.gz [file] # 调用gzip程序完成压缩
                    tar -cjf /tmp/test.tar.bz2 [file] # 调用的bzip2 程序完成压缩
                    tar -cJf /tmp/test.tar.xz [file] # 调用xz程序完成压缩
        解压并解包
                    tar -xzf test.tar.gz  # 调用gzip程序完成解压
                    tar -xjf test.tar.bz2  # 调用的bzip2 程序完成解压
                    tar -xJf test.tar.xz  # 调用xz程序完成解压
        指定位置解压:
                    tar -xzf test.tar.gz -C /srv/
                    
选项
-A 或 --catenate :新增文件到以存在的备份文件;
-B :设置区块大小;
-c 或 --create :建立新的备份文件;
-C < 目录 > :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d :记录文件的差别;
-x 或 --extract 或 --get :从备份文件中还原文件;
-t 或 --list :列出备份文件的内容;
-z 或 --gzip 或 --ungzip :通过 gzip 指令处理备份文件;
-Z 或 --compress 或 --uncompress :通过 compress 指令处理备份文件;
-f< 备份文件 > 或 --file=< 备份文件 > :指定备份文件;
-v 或 --verbose :显示指令执行过程;
-r :添加文件到已经压缩的文件;
-u :添加改变了和现有的文件到已经存在的压缩文件;
-j :支持 bzip2 解压文件;
-J :支持 xz 解压文件;
-v :显示操作过程;
-l :文件系统边界设置;
-k :保留原有文件不覆盖;
-m :保留文件不被覆盖;
-w :确认压缩文件的正确性;
-p 或 --same-permissions :用原来的文件权限还原文件;
-P 或 --absolute-names :文件名使用绝对名称,不移除文件名称前的 “ /” 号;
-N < 日期格式 > 或 --newer=< 日期时间 > :只将较指定日期更新的文件保存到备份文件里;
--exclude=< 范本样式 > :排除符合范本样式的文件。

参数 文件列表:指定要打包的文件或目录列表。

实例
tar -cvf log.tar log2012.log 仅打包,不压缩! tar -xf 解压
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩 tar -zxf 解压
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩 tar -jxf 解压
tar -Jcvf log.tar.xz log2012.log 打包后,以 xz 压缩 tar -Jxf 解压
tar -tf log.tar 查看打包文件
注意 -f 参数后面必须接文件名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值