find(文件)
功能: 递归按条件查找文件(隐藏文件也会查找)
语法: find 查找路径 查找条件 [-exec 处理动作 \;]
-name 文件名,支持通配符(通配符要加引号,不然机器会识别成文件名)
-iname 以文件名作为查找条件,文件名不去区分大小
-type 文件类型
-size 文件大小 [+-]n[kMG] find / -size +50M
-group 组名
-user 用户名
-empty 查找空文件或目录
-atime +n 查找几天前访问过的文件
-atime -n 查找几天内访问过的文件
-mtime +n 查找n天前修改过内容的文件
-mmin +n 查找n分钟前修改过内容的文件
-ctime +n 查找n天前修改过状态的文件(状态有权限、大小等)
-cmin -n 查找n分钟内修改过状态的文件
-perm g=w 仅查找权限为w的文件
-perm -g=w 查找权限有w的文件
多条件查找:
条件1 [-a] 条件2 与的关系:多个条件同时满足
例如: find 查找路径 条件1 -a 条件2
条件1 -o 条件2 或的关系:满足其中任一条件
例如: find 查找路径 条件1 -o 条件2
-not 条件 非: 取反
例如: find 查找路径 ! 条件1
用法二: find [查找范围] 查找条件 -exec|-ok 操作 \;
查找后的处理:
-ok 交互处理,每一个文件处理前询问
-exec 直接处理
例子: 查找到所有tom用户的普通空白文件,并删除
find / -user tom -empty -type f exec rm -rf {} \;
grep(用于文件内容、输入内容输入的过滤)
功能: 打印出匹配到"模式"的行
语法: grep [选项] 模式 文件
模式:
root 包含有root的行
^root 以root开头的行
root$ 以root结尾的行
^$ 行首和行尾中间没有任何字符,空行
选项:
-i 忽略大小写
-v 取反,打印出没有匹配到"模式"的行
-n 带行号打印
-q 不输出
-c 统计匹配到"模式"的行的数量
-R 递归匹配 grep -R "^root" 目录
-w 将关键词作为一个完整的单词进行匹配
wc - 统计
功能: 统计行数,字符数,单词数
语法: wc [选项] 文件
选项:
-l 统计行数
-c 统计字节数
sort - 行排序
功能: 将文件中的行进行排序后输出(默认以第一个字符按照升序的方式进行排序)
语法: sort [选项] 文件
选项:
-n 按照数值进行排序 sort -n 文件
-r 逆序输出
-t 指定字段分隔符(列分隔符)
-k 指定按照第几列排序 sort -t: -k3 -n /etc/passwd
按照从大到小排序:-r -n
uniq
功能: 过滤掉连续重复的行
语法: uniq [选项] 文件
选项:
-c 统计相同的行的行数,输出时将行数写在行的前面(去重,并统计连续的行数)
-i 不区分大小写
-u 只打印不重复的行
xargs
功能: 将从标准输入中接收到的内容(以空格分隔) 传递给后面的命令作为其参数,默认作为处理的最后
一个参数
例:
[root@desk ~]# echo "tom jim jerry"|xargs -n1 id 将"tom jim jerry"一个一个地传递
给id作为其参数
结果: uid=10005(tom) gid=10006(tom) 组=10006(tom),0(root)
id: jim: no such user
uid=10006(jerry) gid=10007(jerry) 组=10007(jerry)
-n 指定一次传递的参数的个数,默认是传递全部参数
-i 将要传递的参数赋值给{}
cut - 处理列
功能: 打印列
语法: cut 选项 文件
选项:
-d 指定字段分隔符 cut -d : -f 1,3 /tmp/pass
-f 指定需要打印的字段(列) cut -d " " -f 1,3 /tmp/pass
tr - 处理字符(不支持直接加文件)
功能: 从标准输入中替换、缩减或删除字符,并将结果写到标准输出
语法: tr [选项] set1 [set2]
选项:
-d 删除set1中所有的字符 echo 80% | tr -d %
-s 如果只有set1:将set1中的连续字符缩减为1个; 如果有set1和set2则将set1中的字符缩减后
替换成set2
-t 将set1中的字符对应替换成set2中的字符(set1中的字符不要重复)
tr 字符1 字符2 (字符可以是多个 )
文件的打包与压缩
压缩的好处:
1.节省磁盘空间
2.节省网络带宽,加快传输速度
zip
zip 选项 路径 要压缩的文件
压缩:压缩后原文件不会消失,压缩后的后缀是.zip
语法: zip [选项] 压缩包名 需要压缩的文件列表
选项:
-r 压缩列表中有目录
例: zip a.zip a.txt
zip -r ab.zip abc a.txt :将abc、a.txt压缩保存命名为ab.zip
解压:
语法: unzip zip压缩包 [-d exdir]
选项:
-d exdir 解压到指定目录
例: unzip ab.zip -d /opt/ 将压缩包解压到路径,默认是解压到当前目录下。
tar (归档程序)
功能: 既可打包,也可压缩
打包: 仅归档,文件的大小不会变化
压缩: 压缩后文件的大小会变化
打包/压缩语法:
tar 选项 包名 文件列表
解包/解压语法:
tar 选项 包名 [-C exdir]
选项:
-cf 创建归档(文件命名以:.tar结尾 )
-xf 解包/压
-f 后接包名,必接选项(归档后的文件名)
-tf 查询包中有哪些文件(查看归档的内容)
-rf 往打好的包中追加文件,不适用于压缩包
-zf 通过gzip压缩 xxx.tar.gz
-jf 通过bzip2压缩 xxx.tar.bz2
-Jf 通过xz压缩 xxx.tar.xz
-af 程序通过规范的后缀名自动选择压缩程序进行压缩
-C 将归档文件释放到指定的目录(解压才用到)
注意: gzip、bzip2:这两个压缩程序在压缩完成后原文件会消失
tar 选项 路径 要打包的文件
例子:
1.将/test目录下所有的文件打包到/tmp,包名叫test.tar
tar -cf /tmp/test.tar /test/*
2.将/test目录下所有的文件采用gzip方式压缩存放到/opt,并命名为test.tar.gz
tar -czf /opt/test.tar.gz /test/*
tar -caf /opt/test.tar.gz /test/* //使用-a时 文件名一定要规范
3.解压:将文件解压到/tmp目录
tar -xf /opt/test.tar.gz -C /tmp //不接-C表示解压到当前目录
4.查看归档后的内容
tar -tf test.tar
5. 追加内容
tar -rf test.tar /var/log/messages
du :
du -h: 用于统计一个目录下所有文件的大小(以人类易读的方式显示)
du -sh: 统计最后文件的大小