find
find 参数
-type f 文件 d目录 l 符号链接
-iname 表示不区分大小写
-regex 正则表达式
-iname 不区分大小写
-cmin +10 十分钟外
-mtime -1 一天内
-user wang 用户王
-size +大于 -小于
-delete
-a 与
-o 或
! 取反
查看.conf文件数量 find /etc/ -name "*.conf" | wc -l
查看属组是tom2的文件 [root@localhost home]# find ./ -group tom2 -type f
查看大于1M文件 find /etc/ -size +1M
查看1天内修改的文件 find /root/ -mtime -1
查看权限是700的文件 [root@localhost home]# find ./ -perm /700 -type f
招出20分钟以内修改的文件筛选出文件进行删除find /root/ -cmin -20 | head -n 3 | head -n 2 | tail -n 1 | xargs rm -rf {} \;
查看20分钟内小于100k文件 find /root/ -cmin -20 -a -size -100k
创建1-10的jpg和mp4文件touch {1..10}.{jpg,mp4}
删除1-10的jpg文件 find ./ -name "*.jpg" -exec rm -rf {} \; {}代表前边查找出的结果
复制用法 find ./ -name "*5.mp4" -exec cp {} /tmp \;
删除10分钟内的文件 find ./ -cmin -10 -type f -exec rm -rf {} \;
除了tom1和tom2的文件find /home/ ! -user tom1 -user tom2
/home/tom2
xargs
xargs 配合mv -t 是用 ls | xargs -i mv -t /tmp
[root@rocky tmp]# seq 5
1
2
3
4
5
[root@rocky tmp]# seq 5|xargs #默认取消换行符
1 2 3 4 5
[root@rocky tmp]# echo 1 2 3 4 5 6 | xargs -n1 按行显示
1
2
3
4
5
6
[root@rocky tmp]# echo 1 2 3 4 5 6 | xargs -n2
1 2
3 4
5 6
[root@rocky tmp]# echo 1 2 3 4 5 6 | xargs -n3
1 2 3
4 5 6
echo user{1..5} | xargs -n1 useradd 创建5个用户
[root@localhost home]# seq 5 | xargs -i echo a{} 花括号配合-i使用
a1
a2
a3
a4
a5
并行下载bilibili
yum install -y python3-pip
pip3 install you-get
seq 2 | xargs -i -P3 you-get https://www.bilibili.com/video/BV1hZ4y1i724?p={}&vd_source=1e8e7227cb73596440fb25edeb6a3f68 并行3个任务
cut
cat /etc/passwd |cut -d":" -f1-3,6 #切割
cat /etc/passwd | cut -c 2-5 截取第2到第5字符显示
sort
-t 指定分隔符
-k 指定列
-n 数字排序
-nr 数字倒序
-R 随机排序
[root@rocky ~]# cut -d: -f1,3 /etc/passwd |sort -t: -nk2
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
------------------------------------------------------------
[root@rocky ~]# df |tail -n +2 | tr -s " " | cut -d" " -f5,6 | sort -t" " -nrk1
83% /boot
13% /
2% /run
0% /sys/fs/cgroup
0% /run/user/0
0% /dev/shm
0% /dev
uniq
-u 显示不重复的行
-c 统计相同次数
-d 每个相同的只显示一个
取相同值 cat 123 321 | sort | uniq -c
取不同值 cat 123 321 | sort | uniq -u
diff
[root@rocky ~]# cat > 123 <<EOF
> q
> a
> z
> EOF
[root@rocky ~]# cat > 321 <<11
> q
> a
> a
> z
> 11
[root@rocky ~]# diff -u 123 321
--- 123 2022-07-17 18:07:26.253703983 +0800
+++ 321 2022-07-17 18:07:43.438688469 +0800
@@ -1,3 +1,4 @@
q
a
+a
z
vimdiff 123 321
patch 恢复文件
tr
[root@rocky tmp]# tr 'a-z' 'A-Z' < 123 #替换用法
ABC
[root@rocky tmp]# cat 123
abc
[root@rocky tmp]# echo healbloc | tr -d 'abc' #删除用法
hello
[root@rocky tmp]# echo healbloc | tr -dc 'abc' #除了abc都删除用法
[root@rocky tmp]# echo aabbaacc | tr -s 'abc' #压缩用法
abac
cat > 123 <<EOF
echo {a..d} | tr ' ' '\n' #把空格替换成换行
tee
tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上
-a:向文件中重定向时使用追加模式;
-i:忽略中断(interrupt)信号。
echo haha | tee -a 123
cat 123
ahsdhjkasd
haha