以文件之名
文件类型
符号 | 文件类型 |
---|---|
- | 常规文件,即f |
d | 目录文件 |
b | 块设备文件 |
c | 字符设备文件 |
l | 符号链接文件 |
p | 命名管道 |
s | 套接字文件 |
目录管理
创建目录
mkdir DIR
删除目录
rmdir DIR
显示目录树,n是数字,代表目录树的深度
tree -L n DIR
文件查看
将多个文件串联起来显示在标准输出
cat [OPTION]... [FILE]...
#OPTIONS:
#-e:转义字符
#-n:显示行号
显示文件行首第一行到n行,默认为10行
head -n FILE...
显示文件末尾行到倒数第n行,默认为10行
tail -n FILE...
#-f:查看文件尾部内容不退出,跟随显示新增的行。常用于查看动态日志内容
从文件行首,通过翻屏细读文件
more FILE...
从文件行尾,通过翻屏细读文件
less FILE...
显示文件类型
file FILE
显示文件的元数据信息
stat FILE
文件管理
创建一个临时的文件或目录,至少3个大写X
mktemp FILE.XXXX
复制文件
cp [OPTION]... SOURCE... DIRECTORY
# OPTIONS:
# -i:提示是否覆盖
# -f:强制覆盖原有文件
# -r:递归复制
# -d:父子链接文件本身,不复制指向的链接文件
# --preserve=all:保留源文件的元数据信息
移动文件
mv SOURCE DIRECTORY
删除文件或目录
rm [OPTION]... FILE...
# OPTIONS:
# -i:交互式提示
# -r:递归删除
# -d:删除空目录
# -f:强制删除
文件查找
在某一路径下查找文件有两种方式:locate
和find
命令
locate | find |
---|---|
依赖于事先构建好的索引库 | 实时遍历 |
查找速度快 | 查找速度慢 |
模糊查找 | 精确查找 |
非实时查找 | 实时查找 |
locate命令
locate [OPTION]... PATTERN...
# OPTIONS:
# -b:只匹配路径中的基名
# -c:统计符合条件的文件的个数
find命令
find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
查找条件
- 文件名
- 从属关系
- 文件类型
- 文件大小
- 文件权限
- 文件时间戳
- 组合测试
文件名
find /etc -name "PATTERN"
# OPTIONS:
# -name pattern:文件名,满足blob通配符
# -iname pattern:忽略大小写
# -regex pattern:基于正则表达式(开头最好带.*)
# -iregex pattern:忽略大小写
从属关系
find /etc -user USERNAME
# OPTINOS:
# -user USERNAME:属主
# -group GROUPNAME:属组
# -uid UID:属主UID
# -gid GID:属组GID
# -nouser:查找没有属主的文件
# -nogroup:查找没有属组的文件
文件类型
find /etc -type f
# OPTIONS:
# f:普通文件
# d:目录文件
# l:符号链接文件
# b:块设备文件
# c:字符设备文件
# p:管道文件
# s:套接字文件
文件大小
find /etc -size 100K
# OPTIONS:
# #[K|M|G]:具体字节大小在同一个单位上换算的数值相等
# +#[K|M|G]:大于100K
# -#[K|M|G]:小于100K
文件权限
find /etc -perm 222
# OPTIONS:
# MODE:精确权限匹配
# /MODE:或者关系;任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;
# -MODE:与关系;同时符合条件即满足
# +MODE:老版本;现在已经被/MODE替代。
文件时间戳
find /etc -atime 3
# OPTIONS:
# -atime:以天为单位访问时间
# n:过去第n天
# +n:n天前
# -n:n天内
# -mtime:以天为单位修改时间
# -ctime:以天为单位更改时间
# -amin:以分钟为单位访问时间
# -mmin:以分钟为单位修改时间
# -cmin:以分钟为单位更改时间
组合测试
find /etc -user root -a -perm 222
# OPTIONS:
# -a:与(默认)
# -o:或
# -not,!:非
处理动作
-print
:输出至标准输出(默认)-ls
:类似于对查找到的文件执行“ls -l”命令-delete
:删除查找到的文件-fls /PATH/TO/FILE
:将查找到的文件的长格式信息保存到指定文件中-exec COMMADN {} \;
:对查找到的文件执行COMMAND命令-ok COMMAND {} \;
:对查找到的每个文件执行COMMAND命令,并且每次操作都由用户确定。
"{}"
是对查找到的文件名的引用
find命令与xargs命令的结合
find传递查找到的文件路径后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令。
有些命令不能接受过长的命令,此时命令会失败,find与xargs结合可规避此问题
xargs - build and execute command lines from standard input
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数
。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。
xargs用法
xargs [OPTIONS] [COMMAND [COMMAND-ARGS]]
# OPTIONS:
# -n #:每行输出#个元素
# -d "X":指定分隔符为X
# -I(大写i):每个参数命令都会执行一次
# -0:分隔符为0或null字符,配合-print0使用
复制所有图片到/data/images目录下
ls *.jpg | xargs -n1 -I cp {} /data/images
查找出当前目录下文件名后缀为.log的文件,并将其删除
find . -type f -name "*.log" -print0 | xargs -0 rm -f
将当前目录下的所有.jpg的图片进行归档压缩
find . -type -f -name "*.jpg" -print | xargs tar zcf images.tar.gz
文件压缩和归档
文件压缩
只能压缩文件
- gzip
- bzip2
- xz
gzip/gunzip/zcat
gzip [OPTIONS]... FILE...
# OPTIONS:
# -d:解压缩,相当于gunzip
# -#:指定压缩比(默认是6);压缩比(1-9)越大,所消耗的cpu时钟周期越长
# -c:将压缩结果输出至标准输出;通过重定向至FILE.gz保存压缩
解压缩
gunzip FILE
压缩后,查看其内容
zcat FILE.gz
bzip2/bunzip2/bzcat
bzip2 [OPTIONS]... FILE...
# OPTIONS:
# -d:解压缩
# -#:指定压缩比
# -k:保留原文件
xz/unxz/xzcat
xz [OPTIONS]... FILE...
# OPTIONS:
# -d:解压缩
# -#:指定压缩比
# -k:保留原文件
文件归档并压缩
将多个文件并成一个文件
tar [OPTION]… FILE…
# 归档OPTIONS:
# -cf FILE.tar /PATH/FILE...:创建归档
# -xf FILE.tar -C /PATH/DIR:展开归档至指定目录下
# -tf /PATH/FILE.tar:查看归档文件中的列表
# 归档并压缩OPTIONS:
# -zcf /PATH/FILE.tar.gz /PATH/DIR:归档并压缩为FILE.tar.gz
# -zxf /PATH/FILE.tar.gz:解压缩并展开归档
# 归档并压缩OPTIONS:
# -jcf /PATH/FILE.tar.bz /PATH/DIR:归档并压缩为FILE.tar.gz
# -jxf /PATH/FILE.tar.bz:解压缩并展开归档
# 归档并压缩OPTIONS:
# -Jcf /PATH/FILE.tar.xz /PATH/DIR:归档并压缩为FILE.tar.gz
# -Jxf /PATH/FILE.tar.xz:解压缩并展开归档
zip:最通用的压缩工具,既能归档又能压缩,但是压缩比有限
#压缩
zip FILE.zip /PATH/FILE
#解压缩
unzip FILE.zip