文件属性组成部分
# ll -i /etc
67430480 d rwxr-xr-x. 3 root root 101 Jul 4 00:00 abrt
67474196 - rw-r--r-- 1 root root 18 Jul 18 22:01 adjtime
67161484 - rw-r--r--. 1 root root 1518 Jun 7 2013 aliases
67729688 - rw-r--r--. 1 root root 12288 Jul 4 00:05 aliases.db
134319563 d rwxr-xr-x. 2 root root 236 Jul 4 00:00 alternatives
01 02 03 04 05 06 07 08 09
01、文件inode号码 inode==书的目录
02、文件类型信息
03、文件权限信息
04、文件硬链接数
05、文件所属用户(属主) 管理数据最高权力
06、文件所属用户(属组) 可以管理数据信息
其他用户 管理数据信息权力最低
07、文件容量大小
08、文件时间信息(修改时间)
文件名称信息不属于文件属性
09、文件名称信息
文件属性详细说明--文件类型信息
ps:Linux系统中一切皆文件
文件类型说明:文件类型查看命令 file
普通文件 '-' 中有 文本文件 二进制文件(命令) 脚本文件 数据文件(压缩文件)
1.文本文件:file 文本文件
ASCII text
2.命令文件:file 命令文件
ELF 64-bit LSB executable
3.脚本文件:file 脚本文件
test.sh: Bourne-Again shell script, ASCII text executable
4.数据文件(压缩):file 数据文件
gzip compressed data, from Unix
目录文件 'd' directory(目录)
链接文件 'l' link 软连接文件(快捷方式) 例:rc.local
设备文件 'b' block 块设备文件 存储设备文件信息 例:硬盘 光驱等
'c' character 字符流设备文件 产生大量字符可以生成随机码 例:/dev/urandom
套接字文件 's' socket(网络开发 网络通讯)
常用的一些扩展名标识:
.log 日志文件
.conf 配置文件
.sh 脚本文件
.py python脚本文件
.tar.gz 压缩文件
文件新命令:file whice whereis locate find tree tar
file ---查看一个文件类型属性信息
which ---查看一个命令文件的路径(绝对路径表示)
whereis ---显示命令路径信息 和 相关其他文件(帮助手册文件)路径信息
locate ---查询文件所在路径信息(所有类型文件)
操作方法: 需要安装locate,但locate是扩展包
①yum provides locate ---查询locate出自哪个软件(mlocate)
②yum install -y mlocate
想要使用locate,需要有个数据库文件
①创建一个文件索引数据库文件
updatedb(不自动更新,需手动更新)
②即可直接搜索
补充: 停止yum安装软件
方法一: ctrl + c
方法二: kill 进程号(进程号--ps -ef)
find ---擅长从系统中查找文件
说明:find命令参数基本基本都是短格式参数
根据文件名称查找文件:格式 find 路径 -多个寻找条件 "需要寻找的东西"
例: # find /opt -name "oldboy.sh"
/opt/oldboy.sh
# find /opt -name "old*"
/opt/oldboy.sh
# find /opt -name "*.sh"
/opt/oldboy.sh
# find /opt -name "old*.sh"
/opt/oldboy.sh
find /opt -iname "oldboy.txt" --- 忽略大小写查找
根据文件名称查找文件:
例: # find /opt -type f
/opt/oldboy.sh
/opt/Oldboy.txt
根据多个调价查找文件:
例: # find /opt -type f -name "oldboy.sh" --- 多个查找条件是并且关系
/opt/oldboy.sh
文件类型有什么:man find -type 常用类型:
f file 找寻普通文件
d directory 找寻目录文件
l link 找寻软链接文件
c 字符流设备文件
b 块设备文件
s 套接字文件
根据指定目录层级查找文件: - maxdepth -mindepth
-maxdepth --- 根据指定目录最大层级查找数据(从开始到几)
-mindepth --- 根据指定目录最小层级查找数据(从几到结束)
find查找条件中的maxdepth与mindepth
查找文件根据文件大小信息,文件尺寸单位 -size
例:
find / -type f -size +50M --- 大于50M的文件找出来
find / -type f -size 50M --- 等于50M的文件找出来
find / -type f -size -50M --- 小于50M的文件找出来
查找文件根据文件大小信息,文件尺寸单位
`b' for 512-byte blocks (this is the default if no suffix is used)
`c' for bytes 一个字节
`w' for two-byte words 两字节
`k' for Kilobytes (units of 1024 bytes) 1kb
`M' for Megabytes (units of 1048576 bytes) 1M
`G' for Gigabytes (units of 1073741824 bytes) 1G
tree ---显示目录层级
显示指定目录层级结构信息 格式:tree -L n 路径 ---只看到几层,往下不展示
例:
# tree -L 1 /oldboy --- 只查看/oldboy目录下面的数据信息,不看子目录中数据信息
/oldboy
├── a.log
├── b.log
├── c.log
├── oldboy01
├── oldboy02
└── oldboy03
3 directories, 3 files
但是显示所有信息包括文件以及目录
# tree -L 1 -d /oldboy --- 只显示目录结构
/oldboy
├── oldboy01
├── oldboy02
└── oldboy03
条件中添加一个 -d 只显示目录
tar ---压缩命令
压缩什么数据 (文本数据 脚本数据 小文件不要压缩 已经压缩过文件 视频 图片)
格式信息: tar 参数 生成压缩包文件(路径信息) 将什么文件进行压缩
例:
tar zcvf /opt/service.tar.gz /tmp/services
z --- 压缩文件的方式 gzip
c --- 创建一个压缩包文件
v --- 详细显示压缩的过程
f --- 指定压缩包的路径(必须写在所有参数最后)
检查压缩包数据
方法一:不解压直接检查
tar tf /opt/service.tar.gz
t --- 不解压,检查压缩包里面内容
方法二:解压检查数据
tar xvf /opt/service.tar.gz
x --- 解压指定压缩包
方法三:指定解压数据路径
tar xf /opt/oldboy03.tar.gz -C /opt/
C --- 指定解压缩数据路径
f --- 指定压缩包的路径(必须写在所有参数最后)
说明:
01. 压缩数据提示:
tar: Removing leading `/' from member names --- 每次压缩数据会将绝对路径/移除
解决方式一: 利用相对路径压缩
cd /
tar zcvhf /opt/oldboy01.tar.gz ./etc/rc.local
cd /etc/
tar zcvhf /opt/oldboy01.tar.gz ./rc.local
解决方式二:利用P参数
P --- 压缩数据时采用绝对路径压缩/解压采用绝对路径解压
作业:
01. 如何生成随机数 /dev/urandom
tr -cd 'a-z' </dev/urandom |head -c 5 ---生成五位英文验证码
02. 将有txt结尾的文件找出,请批量复制到/tmp, 将文件进行删除
环境部署 mkdir -p /oldboy
touch /oldboy/oldboy{01..10}.txt
第一种方法:cp `find /oldboy -type f -name 'oldboy*'` /tmp
第二种方法:find /oldboy -type f -name "oldboy*"|xargs cp -t /tmp
第三种方法:find /oldboy -type f -name "oldboy*"|xargs -i cp {} /tmp
03. 查找数据时,排除指定子目录不要被查找
# mkdir /oldboy/oldboy{01..03}
# touch /oldboy/oldboy{01..03}/{a..c}.txt
# tree /oldboy
/oldboy
├── oldboy01
│?? ├── a.txt
│?? ├── b.txt
│?? └── c.txt
├── oldboy02
│?? ├── a.txt
│?? ├── b.txt
│?? └── c.txt
└── oldboy03
├── a.txt
├── b.txt
└── c.txt
查找a.txt文件,排除b目录不要进行查找
第一种方法:find /oldboy ! -path "oldboy/oldboy02*" -type f -name "*.txt"
第二种方法:find /oldboy -path "oldboy/oldboy02" -prune -o -type f -name "*.txt" -print