find:用于在目录下查找文件,并打印所找到文件的有关信息
- -size +n/-n/n:查找文件大小大于n/小于n/等于n
- name:指定
- -iname:指定名称忽略大小写
- -path:指定路径
- -wholename:功能与-path类似
- -lname:用于匹配文件是否为一个符号链接。
- ilname:与-lname相同,不区分大小写
- -samefile:用来得到当前目录下和file1文件inode相同的硬链接
- -inum:查找对应inode号的文件
- -links n:文件有n个硬链接,n是数值参数,可以是-n和+n
- -atime(amin) n:文件上一次访问时间是在n*24小时之前(n分钟之前)
- -ctime(cmin) n:文件上一次状态改变是在n*24小时之前(n分钟之前)
- -mtime(mmin) n:文件上一次内容改变是在n*24小时之前(n分钟之前)
- -size n[bckwMG] n:n是数据参数,b代表数据块block,c代表字节,k代表1024字节kb,w代表字符数量2-byte,M代表兆字节,G代表千兆字节。
- -type -c(d目录,f普通文件,l符号链接)
- -user uname:所属用户的文件
- -group gname:所属组的文件
- -uid n:所属id为n的用户文件
- -gid n:所属id为n的组文件
- -readable:查找可读文件
- -writeable:查找可写文件
- -executable:查找可执行文件
- -exec后面紧跟可执行的命令或脚本,然后跟{} ;
实例1:
显示查找出来的文件详细信息
find . -type f -exec ls -l {} \;
实例2:
删除当前目录下修改时间在14天前的文件
find . -type -f -mtime 14 -exec rm {} \;
实例3:
删除当前目录下后缀为log的文件,并在删除之前确认
find . -name '*.log' -ok rm {} \;
实例4:
查找/etc/目录下以passwd大头,并且内容包含root的文件
find /etc -name 'passwd*' -exec grep 'root' {} \;
locate:与find不同,locate命令其实是在一个包含有系统中所有文件名和目录名的数据库中去查找,数据库不是实时更新的,更新数据库使用updatedb。
实例:
查找文件名中含有/usr/bin/python的文件
locate /usr/bin/python
- –basename:查找基础名称
实例:查找基础名称带有python的文件
locate --basename python
whereis:whereis命令与locate类似,也是在一个保存有系统中所有文件名和目录名的数据库中去查找。不同的是在与whereis命令查找的是二进制文件,源,或者man手册的文件
- -f:定义搜索范围
- -b:仅搜索二进制文件
- -m:仅搜索man手册
- -s:仅搜索源
which:用来查找shell命令的完整路径。该命令在环境变量path中列出的目录中搜索可执行文件或脚本进行匹配查找。
- -a:列出所有匹配的查找结果。
文件的打包与解压
gzip:对文件进行压缩,生成压缩文件以.gz结尾。
gunzip:对.gz结尾的压缩文件进行解压。
tar:用于创建文件档案的命令行工具。
- -c:创建一个存档
- -r:将文件附加到档案文件末尾
- -z:指定gzip格式
- -v:显示文件处理的详细过程
- -f:指定档案文件名称
- -x:还原档案文件
实例1:将四个文件压缩成一个tar文件
tar -cvf test.tar file1 file2 file3 file4
实例2:将tar文件解压
tar -xvf test.tar