文件查找 下载 压缩 解压 命令

1、命令查找(查找某一个命令在什么地方)

which [command]

2、文件查找(find)
1、按照文件名称查找 -name

格式:find [路径] -name '[匹配规则]'
例1:查询以.html结尾的文件
[root@localhost ~]# find /root -name '*.php'
例2:查询/etc目录下,文件名称中包含pass的文件
[root@localhost ~]# find /etc -name '*pass*'
例3:查询/ect目录下,文件名以pass开头的文件
[root@localhost ~]# find /etc -name 'pass*'

2、按照文件类型查找(type)

-(f) : 普通文件
d : 目录文件
l : 链接文件
b : 块设备文件
c : 字符设备
s : 套接字文件
p : 管道文件
格式:find [路径] -type '[匹配类型]'
例1:查询/root目录下,有哪些普通文件
[root@localhost ~]# find  /root/ -type f
例2:查询/dev目录下,有哪些字符设备文件?
[root@localhost ~]# find /dev/ -type c
例3:查询/run目录下,有哪些套接字文件
[root@localhost ~]# find /run -type s

3、按照属性来查
属主,属组,不存在用户或用户组的

格式:
find [路径] -user '用户名'
find [路径] -group '组名'
find [路径] -nouser 
find [路径] -nogroup
例1:查询/tmp目录下,有哪些属主为root的文件?
find /tmp -user 'root'	
例2:查询/tmp目录下,有哪些属组为test的文件?
find /tmp -group 'test'
例3:查询/tmp目录下没有用户的文件有哪些?
find /tmp -nouser 
例4:查询/tmp目录下没有属组的文件?
find /tmp -nogroup
例5:查询/tmp目录下,没有属组同时没有属主的文件?
find /tmp -nouser -nogroup

4、按照权限来查找(perm)

可读权限(4),可写权限(2),可执行权限(1)
格式:
find [路径] -perm [数字权限]
例1:查询/tmp目录下,权限为664的文件有哪些
find /tmp -perm 664
例2:查询/tmp目录下,属组只有可读可写权限的文件有哪些?
find /tmp -perm 664

5、按照文件大小查

dd :创建文件的命令
if : 指定读取的文件
of : 指定写入的文件
bs : 每次写入的大小
count : 写几次
例1:写入文件50M
dd if=/dev/zero of=/tmp/test4.txt bs=10M count=5
			
参数:
	-a : 并且(默认)
	-o : 或者
	
格式:
	find [路径] -size '文件大小'
			
例1:查新/tmp目录下,大小为40M的文件有哪些?
find /tmp/ -size 40M
例2:查找/tmp目录下,大小为20M的文件有哪些?
find /tmp -size 20M
例3:查找/tmp目录下,大于20M的文件并且小于40M的文件有哪些?
find /tmp -size +20M -a -size -40M
例4:查找/tmp目录下,小于30M 或 大于40M的文件有哪些?
find /tmp -size 30M -o -size +4M 

6、按照时间来查询(mtime)(atime)(ctime)

date -s '修改的时间'
同步互联网时间:/usr/sbin/ntpdate ntp1.aliyun.com
参数:
	-ctime : 创建时间
	-atime : 访问时间
	-mtime : 修改时间
	+7	: 7天前创建的
	7	:正好七天创建的
	-7	:7天内创建的
格式:
         find [路径] -ctime '7'
		
例1:查询7天前创建的文件?
find /tmp -ctime +7
例2:查询7天内创建的文件?
find /tmp -ctime -7	

查找深度 (maxdepth)
指定需要查找的文件层级。

格式:
find [路径] -maxdepth [层级数] [匹配规则] # 注:-maxdepth不能够单独使用的
例1:查找/etc目录下所有的文件夹,要求目录层级为3?
find ./ -maxdepth 3 -type d
例2:查询/etc目录下名称包含eth的普通文件,要求目录层级为3。
[root@localhost etc]# find /etc -maxdepth 3 -name '*eth*' -type f

处理查找出来的内容(-exec)(xargs)

-exec
是find中的参数之一,它的主要作用是将find查询出来的内容交给其他命令来处理。
格式:
	find [路径] [匹配规则] -exec 处理的命令 {} \; 
例1:将/etc目录下所有的普通文件复制到/tmp/etc目录下
[root@localhost etc]# find /etc -type f -exec cp {} /tmp/etc/ \;
例2:将/tmp/etc目录中所有超过1M的文件删除
[root@localhost etc]# find /tmp/etc -size +1M -exec rm -rf {} \; 
xargs  (要配合 | 符使用)
xargs不是find的参数,它是格式化输出的一种命令
格式:
find [路径] [匹配规则] | xargs
例1:查询/tmp/etc目录中超过20M的文件,将其删除
[root@localhost etc]# find /tmp/etc/ -size +10M | xargs -I {} rm -rf {}
例2:查询/tmp/etc目录中超过20M的文件,将其移动到/root目录下
[root@localhost etc]# find /tmp/etc -size +20M | xargs -I {} mv {} /root/

2、上传与下载

1、上传
	yum install lrzsz -y
	rz 
2、下载
  wget
      下载文件(yum install wget -y)
	参数:
	-O : 指定下载的路径及文件名
  curl
	读取文件(Linux自带命令)
	参数:
	-o : 指定下载的路径及文件名
  sz
	从Linux主机中下载文件到客户端

3、输出与重定向

$? : 上一条命令的运行结果(运行返回值),当返回值为0时,则认为上一条命令运行成功,非0则认为失败。
0 :标准输入
1 :标准正确输出
2 : 标准错误输出
& :是标准正确和错误输出
> :覆盖重定向(先清空该文件,然后写入新内容)
>>:追加重定向(在原有的文件后写入新内容)
<:输入重定向
	
#!/bin/bash
while read line
do
      echo $line
 done < /etc/passwd
正确错误分开放:
#echo 111 >> log 2>> log2	
正确错误放一起:
#2>&1  等价于  & 
#echo 111 >> log 2>&1
#echo 111 & >> log

检测:

1、使用grep过滤文件中包含root的行,要求使用输入重定向方式(/etc/passwd)
grep 'root' < /etc/passwd
2、编写一个脚本,要求标准正确输出到log文件中,标准错误输出到log1文件中。
echo 111 1>log 2>log1

4、字符处理命令(sort)默认以第一个数值排序

1、字符排序
将字符按照一定的顺序排序,(默认情况下:按照第一个字符进行排序)
参数:
默认以第一个数值排序
-n # 依照数值的⼤⼩排序
-r # 以相反的顺序来排序
-k # 以某列进⾏排序
-t # 指定分割符,默认是以空格为分隔符
例1:将1.txt按照数值从大到小进行排序
[root@localhost ~]# cat 1.txt | sort -n -r
例2:将1.txt按照第二列数值从大到小进行排序
[root@localhost ~]# cat 1.txt | sort -n -r -k2
例3:将1.txt按照冒号来分割,按照第三列来从大到小进行排序
[root@localhost ~]# cat 1.txt | sort -n -r -k3 -t:

2、字符去重(unip) ⼀般与 sort 命令结合使⽤

⽤于检查及删除⽂本⽂件中重复出现的⾏列,⼀般与 sort 命令结合使⽤。
参数:
默认以第一个排序
-c # 在每列旁边显示该⾏重复出现的次数。
-d # 仅显示重复出现的⾏列。
-u # 仅显示出⼀次的⾏列。
例1:输出2.txt文件中,每个词出现的次数
[root@localhost ~]# cat 2.txt | sort | uniq -c
例2:在第一题的基础上,仅显示出现重复的列
[root@localhost ~]# cat 2.txt | sort | uniq -c -d
例3:在第一题的基础上,仅显示未重复的列
[root@localhost ~]# cat 2.txt | sort | uniq -c -u
例4:在第一题的基础上,要求按照重复的次数进行排序
[root@localhost ~]# cat 2.txt | sort | uniq -c | sort -r

3、切割字符(cut)

cut命令⽤来显示⾏中的指定部分,删除⽂件中指定字段
参数:
-d # 指定字段的分隔符,默认的字段分隔符为"TAB";
-f # 显示指定字段的内容;(一列)
例1:获取当前系统中所有的用户ID
[root@localhost ~]# cat /etc/passwd | cut -d: -f3
例2:在第一题的基础上,按照从大到小的顺序排序
[root@localhost ~]# cat /etc/passwd | cut -d: -f3 | sort -r -n

4、删除和替换字符(tr)

替换或删除命令
参数:
-d # 删除字符
例1:删除/etc/passwd中root
[root@localhost ~]# cat /etc/passwd | tr -d 'root'
例2:将/etc/passwd文件中所有的bash转换成BASH
[root@localhost ~]# cat /etc/passwd | tr 'bash' "BASH"

5、字符统计(wc)

统计,计算数字
参数:
-c # 统计⽂件的字节数;
-l # 统计⽂件的⾏数;
-w # 统计⽂件中单词的个数,默认以空⽩字符做为分隔符
例1:统计3.txt中有多少个字节的数据
[root@localhost ~]# cat 4.txt | wc -c
例2:统计3.txt中有多少行数据
[root@localhost ~]# cat 4.txt | wc -l
例3:统计3.txt中有多少个词(一段数字和字母连续不断的字符串,不包含特殊字符)
[root@localhost ~]# cat 4.txt | wc -w

2、打包和压缩

Windows的压缩和Linux的有什么不同
 	1、Windows : zip
 	2、Linux : tar

Linux下常⻅的压缩包类型
格式 		压缩⼯具
.zip 		zip压缩⼯具
.gz 		gzip压缩⼯具,只能压缩⽂件,会删除源⽂件(通常配合tar使⽤)
.bz2 		bzip2压缩⼯具,只能压缩⽂件,会删除源⽂件(通常配合tar使⽤)
.tar.gz 	先使⽤tar命令归档打包,然后使⽤gzip压缩
.tar.bz2 	先使⽤tar命令归档打包,然后使⽤bzip压缩

gzip  : 只用gzip压缩算法压缩,不打包
	-d : 解压gzip压缩
bzip2 :只用bzip压缩算法压缩,不打包

1、打包(tar)

tar
tar打包时会将路径同时打包到压缩包中,如果从根目录开始,tar会自动删除/目录。
参数:
       -f : 指定打包的文件名称
       -c : 打包文件
       -v : 显示打包的过程
       -z : 使用gzip压缩算法进行压缩处理(推荐)
       -j : 使用bzip2压缩算法进行压缩处理
       -P : 在打包过程中,取消移除根目录说明
       -x : 将tar打包的压缩包解压
       -t : 查看压缩包内内容
       -C : 解压至指定目录
       -q :静默输出
例1:将/etc/passwd压缩到/tmp/passwd.tar.gz
[root@localhost tmp]# tar -czvf /tmp/passwd.tar.gz /etc/passwd
例2:将/etc下,所有的普通文件打包成etc.tar.gz
[root@localhost tmp]# find /etc/ -type d -exec tar -czPvf etc.tar.gz {} \;
例3:将/etc/passwd压缩到/tmp/passwd.tar.bz2
[root@localhost tmp]# tar -cjPvf /tmp/passwd.tar.bz2 /etc/passwd
例4:将/etc下,所有的普通文件打包成etc.tar.bz2
[root@localhost tmp]# find /etc/ -type d -exec tar -cjPvf etc.tar.bz2 {} \;
例5:将第三题中的压缩包解压到/tmp/test目录下
[root@localhost tmp]# tar -xf etc.tar.gz 
例6:将etc.tar.gz解压到/tmp/test/目录下
[root@localhost etc]# tar -xf etc.tar.gz -C /tmp/test/

zip

1、打包(zip)
格式:
zip [压缩包名称] [压缩文件...]
参数:
	-r : 递归压缩
	-q : 静默输出
例1:压缩/etc/yum.conf /etc/passwd
[root@localhost test]# zip test.zip /etc/yum.conf /etc/passwd
例2:压缩/etc目录
[root@localhost test]# zip -r etc.zip /etc/*

2、解压(unzip)

参数:
	-l : 显示压缩包内部信息
        -d : 解压到指定目录
例1:解压上述test.zip 
[root@localhost etc]# unzip etc.zip 

2、压缩算法

1、gzip压缩算法(压缩完成之后,立即删除源文件)
参数:
	-d : 解压
格式:  
        gzip [文件]
		
2、bzip2压缩算法
参数:
	-d : 解压
格式:        
	bzip2 [文件]

3、打包压缩和find结合

格式: find [路径] [匹配规则] -exec [压缩打包] \;
例1:将/etc目录下的所有普通文件进行压缩
[root@localhost etc]# tar -zcPvf vvv.tar.gz `find /etc/ -type f | xargs` (反引号代表先运行的意思)
posted @ 2021-06-30 18:24  小丶凡  阅读(294)  评论(0编辑  收藏  举报
1