目录
文件查找
grep:文件内容过滤
grep 'root' /etc/passwd #从/etc/passwd文件中过滤root字段
查找命令
which ls
alias ls=‘ls - - color=auto’
/usr/bin/ls
#which只能查找命令文件,对普通文件无效
查询命令和配置文件的位置
whereis rpm
rpm:/usr/bin/rpm /usr/lib/rpm /etc/rpm /usr/share/man/man8/rpm.8.gz
1.find详解:文件查找,针对文件名
语法:
find 路径 条件 跟条件相关的操作符
路径:
1.默认不写路径是查找的是当前路径
2.指定路径
条件:
1.文件名称 -name
2.文件类型 -tyep
3.文件大小 -size
4.文件权限 -perm
5.文件时间 -atime -mtime -ctime
1.1 文件名称查找 -name
find / -name “finle2” #从根目录下查找含有finle2的文件
find /etc -iname "IFcfg-ens33" #i忽略大小写
1.2 文件类型查找 -type
find /dev -type f #查找普通文件
find / -type f -size -1M -o -name "*.txt"
find /dev -type d #查找目录文件
find /etc -type l #查找链接文件
find /dev/ -type b #查找块设备
1.3 文件大小查找 -size
find /etc -size +5M #查找大与5M的文件
find /etc -size 5M #查找等于5M的文件
find /etc -size -5M #查找小于5M的文件
find /etc -size +3M -a -size -5M #查找大与3M并小于5M的文件 (-a是且 可忽略不写)
find /etc -size -1M -o -size +3M #查找小于1M或大与3M的文件 (-o是或者)
1.4 文件权限查找
find /usr/bin -prem 644 #精确查找文件权限是644的文件
find /usr/bin -prem -4000 #包含set uid (u+s)
find /usr/bin -prem -2000 #包含set gid (g+s)
find /usr/bin -prem -1000 #包含sticky(o+t)
1.5 文件时间查找
按时间查找(atime,mtime,ctime)
-atime = access 访问时间
-mtime = modify 改变时间(内容修改时间)
-ctime = change 修改时间 (属性修改时间)
-amin 分钟
-mmin
-cmin
find /opt -mtime +5 #查找修改时间五天前的文件
find /opt -atime +1 #查找访问时间一天前的文件
find /opt -ctime -2 #查找修改时间两天内的文件
1.6 找到文件后处理动作
-name "ifcfg*" | xargs
-name "ifcfg*" | -print #打印
-exec
find /etc -name "ifcfg" -exec cp -rf {} /tmp \; #exec命令对查找出来的文件做进一步操作 ({}为查找到的内容, \; 格式)
xargs
find /home/ -name "test*" | xargs -i cp {} /tmp/ #找到之后删除处理xargs参数传递
-exec和xargs区别
-exec:参数是一个一个传递的,传递一个参数执行一次命令
xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转化成下一个命令的参数列表。
1.exec每处理一个文件或目录都要启动一次,效率不高
2.exec格式麻烦
3.xargs不能操作文件名有空格的文件
2. 打包压缩
2.1 打包解包
2.1.1 打包 tar cvf
语法:
#tar cvf xxx.tar filename 被打包的文件
c:create 创建
v:verbose 详细信息
f:file 文件
2.1.2 解包 tar xvf
语法:
#tar xvf xxx.tar -C 解包路径
-C:指定解包路径
案例
[root@youngfit.com ~]# tar cvf dir1.tar /home/dir10/ #打包目录dir10,将包命名为dir1.tar
[root@youngfit.com ~]# tar xf dir1.tar -C /usr/local/ #将dir1包解压到指定目录
2.2 压缩 解压缩
2.2.1压缩 gzip bzip2
语法:
gzip 源文件 文件结尾为.gz
bzip2 源文件 文件结尾为.bz2
2.2.2 解压缩
语法:
gunzip 压缩文件
gunzip2 压缩文件
gzip -d 压缩文件
gzip -d 压缩文件
案例
[root@youngfit.com ~]# gzip file1 #压缩
[root@youngfit.com ~]# gzip -d file1.gz #解压缩
[root@youngfit.com ~]# gunzip file1.gz #也是解压缩包
[root@youngfit.com ~]# gzip -c file1 > /usr/local/file1.gz #压缩到指定位置(注意以.gz结尾)
[root@youngfit.com ~]# gunzip -c /usr/local/file1.gz > /opt/file1 #解压到指定位置(解压出的名字可以自定义)
-c, --stdout
2.3 打包压缩一起
语法:
tar cvzf file.tar.gz 源文件
tar cvjf file.tar.bz2 源文件
z:表示gz压缩
j:表示bz2压缩
2.4 解压解包一起
语法:
tar xvzf 压缩文件 -C 压缩路径
tar xvjf 压缩文件 -C 压缩路径
案例
[root@youngfit.com ~]# tar cvzf dir1.tar.gz dir1 #打包并压缩
[root@youngfit.com ~]# tar xvzf dir1.tar.gz -C /usr/local/ #解压到指定位置
[root@youngfit.com ~]# tar czf /tmp/`date +%F-%T`-etc.tar.gz /etc/ #将打包压缩的文件放到/tmp目录下,并以当前时间开头命名
3. 链接文件
ll -i 查看inode号
3.1 硬链接
inode一样 源文件失效,链接文件依旧能用,不可作用于目录,不能跨文件系统
ln /file1 /file1-h1 #创建file1的硬链接文件file1-h1
3.2 软链接
inode号不同 源文件失效,链接文件不能用 ,可作用与目录,能跨文件系统
ln -s /file2 /file2-h2 #创建file2的软链接文件file2-h2
3.3 面试:软链接和硬链接的区别:
软链接可以跨文件系统,硬链接不行
软链接可以对目录进行链接,硬链接不行
删除源文件后软链接失效,硬链接没影响
软联机创建方式ln -s 硬链接创建方式 ln