tar命令

tar打包命令

  • 该命令不会压缩包的体积,反而包的体积会变大
tar -cf 打包文件名 要打包的文件

tar查看包内容

tar -tf 压缩包名

删除压缩包内的某个文件

tar -f 压缩包名 --delete 要删除的文件名

合并压缩包

tar -f 压缩包名 -A 要合并的包

向包内添加新文件

tar -f 压缩包名 -r 要添加的新文件

解包命令

tar -xf 压缩包名 -C 解压目录

gzip命令

gzip压缩命令

  • 存在1-9的压缩级别,默认为6
gzip -压缩级别  文件名

gzip解压缩命令

gzip -d 文件名
  • tar只能打包,不压缩体积
  • gzip只能压缩单个文件,不能打包,所以两者应当搭配使用

tar gzip搭配打包压缩

tar -czf 文件名

tar gzip搭配解压缩

tar -xzf 文件名

查找相关命令

locate查找文件

locate 查找目录 文件名
  • 该查找较快,是因为它是在数据库中查找/var/lib/mlocate
  • 该数据库存放着文件的索引
  • 默认每天更新一次数据库,可以使用update手动更新DB

find命令

find 查找范围 查找条件 动作

通过文件名查找

  • 这里的名字为精确名字,可以使用通配符
find 目录 -name  名字

通过文件类型查找

  • 这里的type为文件类型
参数 含义
d 目录文件
f 普通文件
c 字符设备文件
b 块设备文件
l 符号链接文件
find 目录 -type 文件类型

根据时间查找

# 查找三天内修改过的文件 -ls为动作选项
find 目录 -mtime -3 -ls
# 查找七天前修改过的文件 -ls为动作选项
find 目录 -mtime +7 -ls
# 查找4天前那一天的修改过的文件 -ls为动作选项
find 目录 -mtime 4 -ls

根据文件大小查找

find 目录 -size 1024k -ls

根据文件所属用户和用户组查找

# 查找所属于root用户的文件
find 目录 -user root -ls
# 查找uid为8的文件
find 目录 -uid 8 -ls
# 查找用户组为root的文件
find 目录 -group root -ls
# 查找组id为8的文件
find 目录 -gid 8 -ls

根据文件权限查找

find 目录 -perm 777 -ls

连接多个参数

find 目录 \(-size +1k -a -size -10m -a -type f\) -ls

-exec

find 目录 \(-size +1k -a -size -10m -a -type f\) -ls

-ok

  • 该命令和-exec效果相同,但是会每次都提示用户,推荐使用-ok
find 目录 \(-size +1k -a -size -10m -a -type f\) -exec rm -rf {} \;

通配符

通配符 *

  • 代表任意长度字符
rm -rf *.txt

通配符 ?

  • 代表一个字符
ls -l /bin/??sh

通配符 []

# 匹配0-9之间的字符
cp /tmp/file[0-9].txt ~
# 匹配任意一个字符
cp /tmp/[a,1,b].txt ~

通配符 {}

# 删除包含字符串str1 或者 str2的txt文件
rm -rf {str1,str2}*.txt 

通配符 !

# 删除不包含字符串str1 或者 str2的txt文件
rm -rf {!str1,str2}*.txt 

查看文件

cat

  • 超过一页的缓冲区无法查看,无法翻页
  • 适合查看较小的文件
cat 文件名

less

  • 上下箭头翻行
  • PageUp、PageDown翻页
  • 输入 /关键字 可以高亮显示字符串,n跳转下一个关键字处,N跳转上一个
  • q退出less
less 文件名

head

# 显示文件开始的20行
head -n 20
# 默认显示10行
head

tail

# 显示文件结尾的n行
tail -n 行数

入 /关键字 可以高亮显示字符串,n跳转下一个关键字处,N跳转上一个

  • q退出less
less 文件名

head

# 显示文件开始的20行
head -n 20
# 默认显示10行
head

tail

# 显示文件结尾的n行
tail -n 行数