1、文件的查找和搜索
可执行文件的搜索:which 、whereis
locate搜索文件
find搜索文件
1.1可执行文件的搜索
在Linux系统中,有成百上千个指令,不同的指令对应的指令文件,又放在不同的目录里。如果快速地查找指令的绝对路径是相当重要的。
which <指令>
显示一个指令的完整路径与别名。
whereis <指令>
搜索一个指令的完整路径以及其帮助文件。
[root@natsha ~]# which ls
alias ls='ls --color=auto'
/bin/ls
[root@natsha ~]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
1.2locate搜索
在Linux系统中存在一个数据库,在这个数据库中保存了系统中所有文件的绝对路径。用户就可以使用下面的命令来查询文件的完整路径。
语法:locate [关键字]
这个指令会将文件名或目录名中包含有此关键字的路径全部显示出来。
用户刚创建的文件系统不会立即加入数据库中,用户可以通过updatedb指令来手动的更新这个 数据库
1.3Find查询的描述
find是一个相当重要的查询文件绝对路径的指令
语法:find <路径> <选项> [表达式]
find查找文件的特点:
从指定路径下递归向下搜索文件。
支持按照各种条件方式搜索。
支持对搜索得到的文件再进一步的使用指令操作(例如:删除、统计大小、复制等)
Find条件查询
find <路径> <参数> [表达式]
重要选项:
-name 根据文件名寻找文件
-user 根据文件拥有者寻找文件
-group 根据文件所属组寻找文件
-perm 根据文件权限寻找文件
-size 根据文件大小寻找文件[±Sizek]
-type 根据文件类型寻找文件,常见类型有:f(普通文件) 、c(字符设备文件)、b(块设备文件) 、l(连接文件)、d(目录)
-o 表达式或
-and 表达式与
-not 表达式非
对查找到的文件进一步操作
语法
find [路径] [参数] [表达式] -exec 指令 {} \;
{ }代表find找到的文件
\ 转意
;表示本行指令结束
例:find /etc –name “host*” –exec du –h {} \;
(1)使用-name选项
使用文件名模式来匹配文件,文件名要放在引号中。
在当前目录和子目录中查找所有的'*.log'文件:
find . -name "*.log" -print
(2)按文件属主查找文件
find /etc -user natasha -print
(3)按更改时间或者访问时间等查找文件。
在根下查找更改时间在5日以内的文件,可以用:
find / -mtime -5 -print
在/var/adm目录下查找更改时间在3日以前的文件,可以用:
find /var/adm -mtime +3 -print
(4)使用type选项
在/etc 目录下查找所有的目录
find /etc -type d -print
在当前目录下查找除目录以外的所有类型的文件:
find . !-type d -print
(5)使用size选项
按文件大小来查找。
在当前目录下查找文件长度大于1M的文件:
find . -size +1M -print
在/home/apache目录下查找文件长度恰好为100字节的文件:
find /home/apache -size 100c -print
(6)使用depth选项
首先匹配所有的文件再在子目录中查找。
从文件系统的根目录开始,查找一个名为CON.FILE文件。
find / -name "CON.FILE " -depth -print
(7)找出所有所有者是natasha的文件,并把他们拷贝到/root/found目录。
mkdir /root/found
find / -user natasha –exec cp –rf {} /root/found/ \;
2、文件的压缩与解压缩
文件的压缩与解压指令
gz与.bz系列指令
- gzip,gunzip
-- Linux标准压缩工具
-- 对文本文件可以达到75%的压缩率
-- 例:
gzip man.config
gunzip man.config.gz
- bzip2,bunzip2
--更新的Linux压缩工具
--比gzip有着更高的压缩率
例:
bzip2 httpd.conf.bk
bunzip2 httpd.conf.bk.bz2
不解压显示压缩文件的内容:
对于用gzip压缩的文件,有一系列以z开头的指令,可以在不经解压的情况下,就直接显示文件的内容
zcat:直接显示压缩文件的内容
zless:直接逐行显示压缩文件的内容
对于用bzip压缩的文件,也有一系列以bz开头的文件。
bzcat:直接显示压缩文件的内容
bzless:直接逐行显示压缩文件的内容
3、tar指令
常用选项:
c 创建包
v 将过程输出
x 解出包
t 显示tar文件的内容
r 在tar文件尾部追加文件
z 用gzip压缩或解压文件
j 用bzip压缩或解压文件
f 指定备份文件名
-T 从指定的文件中读取欲打包的文件路径
-C 将文件备份到指定的目录
tar支持在备份同时压缩备份文件,或在解出备份同时解压缩。
备份时压缩
#tar jcvf test.tar.bz /home/test ( j:使用bzip2 )
#tar zcvf test.tar.gz /home/test ( z:使用gzip )
#tar -cvf /tmp/etc.tar /etc 仅打包,不压缩
# tar -zcvf /tmp/etc.tar.gz /etc 打包后,以 gzip 压缩
# tar -jcvf /tmp/etc.tar.bz2 /etc 打包后,以 bzip2 压缩
在参数 f 之后的文件档名是自己取的,习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file
# 如果加 j 参数,则以 .tar.bz2 来作为压缩过的文件名
解压备份文件
#tar jxvf test.tar.bz -C /tmp (j:使用bzip2 )
#tar zxvf test.tar.gz -C /tmp(z:使用gzip )
备份 /home, /etc ,但不要 /home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc