find
查找大于200M文件,如果有子文件,那么子文件也会显示
find . -type f -size +200M
查找当前目录下大于200M文件
find . -maxdepth 1 -type f -size +200M
查找当前目下的文件夹
dir=/data/mdatacenter/data/6077e1b0d25ef32db748af78
root@iZ2ze1l5ld7n18s5p8meceZ:~# find $dir -maxdepth 1 -type d
/data/mdatacenter/data/6077e1b0d25ef32db748af78
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202108
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202105
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202106
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202103
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202107
查找当前目录下的文件夹,不含当前的目录
dir=/data/mdatacenter/data/6077e1b0d25ef32db748af78
root@iZ2ze1l5ld7n18s5p8meceZ:~# find $dir -maxdepth 1 -type d | grep -v $dir$
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202108
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202105
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202106
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202103
/data/mdatacenter/data/6077e1b0d25ef32db748af78/202107
取出文件名并排序
dir=/data/mdatacenter/data/6077e1b0d25ef32db748af78
# find -printf "%f\n" %f: 获取文件名,当前的文件夹也会提取文件名
root@iZ2ze1l5ld7n18s5p8meceZ:~ find $dir -maxdepth 1 -type d -printf "%f\n" | grep -v $(basename $dir)$ | sort
202103
202105
202106
202107
202108
# find -printf "%P\n" %p: 获取文件名,当前的文件夹名称是空
root@iZ2ze1l5ld7n18s5p8meceZ:~ find $dir -maxdepth 1 -type d -printf "%P\n" | grep -v ^$
202108
202105
202106
202103
202107
# sed
root@iZ2ze1l5ld7n18s5p8meceZ:~ find $dir -maxdepth 1 -type d | grep -v $dir$ | sed "s#$dir/##g" | sort
202103
202105
202106
202107
202108
# awk
root@iZ2ze1l5ld7n18s5p8meceZ:~ find $dir -maxdepth 1 -type d | grep -v $dir$ | awk -F/ '{print $NF}' | sort
202103
202105
202106
202107
202108
# basename
root@iZ2ze1l5ld7n18s5p8meceZ:~ for x in $(find $dir -maxdepth 1 -type d | grep -v $dir$ | sort);do basename $x;done
202103
202105
202106
202107
202108
# xargs
root@iZ2ze1l5ld7n18s5p8meceZ:~ find $dir -maxdepth 1 -type d | grep -v $dir$ | xargs -I{} basename {} | sort
202103
202105
202106
202107
202108
ls
按照文件大小降序排列
ls -S
按照文件大小升序排列
升序
ls -lSr
按照文件的时间降序排列
ls -t
按照文件的时间降序排列
ls -tr
du 对目录排序
对目录大小排序, 取前三个
du -s * | sort -nr | head -3
按照指定单位大小对当前的文件和目录大小排序, 取前三个
1.字节
du -b * | sort -nr | head -3
2.k
du -k * | sort -nr | head -3
3.M
du -m * | sort -nr | head -3
4.自定义10M
du -B 10M * | sort -nr | head -3
4.自定义G
du -B 1G * | sort -nr | head -3
uniq去重,必须要先对文本进行排序
# 未排序
➜ sunzhengbo cat /etc/passwd | cut -d':' -f7 | uniq
/bin/zsh
/usr/bin/nologin
/usr/bin/git-shell
/bin/zsh
# 已排序
➜ sunzhengbo cat /etc/passwd | cut -d':' -f7 | sort | uniq
/bin/zsh
/usr/bin/git-shell
/usr/bin/nologin
# 统计重复项的个数
➜ sunzhengbo cat /etc/passwd | cut -d':' -f7 | sort | uniq -c
2 /bin/zsh
1 /usr/bin/git-shell
14 /usr/bin/nologin
sort 排序
-u 去除重复行
➜ sunzhengbo cat /etc/passwd | cut -d':' -f7 | sort -u
/bin/zsh
/usr/bin/git-shell
/usr/bin/nologin
-n 按数字升序排列
-r 反向排序
-k 按序列排序,k后面可以指定多个列,使用逗号分隔
# 升序
➜ os ls -l | sort -n -k5
total 7780284
-rwxr--r-- 1 sunzhengbo sunzhengbo 711983104 Dec 5 2020 archlinux-2020.09.01-x86_64.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 1261371392 Aug 28 10:22 ubuntu-20.04.3-live-server-amd64.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 2573096960 May 14 22:31 manjaro-xfce-21.0.4-210506-linux510.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 3420557312 Nov 29 2020 cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso
# 降序
➜ os ls -l | sort -nr -k5
-rwxr--r-- 1 sunzhengbo sunzhengbo 3420557312 Nov 29 2020 cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 2573096960 May 14 22:31 manjaro-xfce-21.0.4-210506-linux510.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 1261371392 Aug 28 10:22 ubuntu-20.04.3-live-server-amd64.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 711983104 Dec 5 2020 archlinux-2020.09.01-x86_64.iso
tac 按行反序输出
➜ os ll
total 7.5G
-rwxr--r-- 1 sunzhengbo sunzhengbo 679M Dec 5 2020 archlinux-2020.09.01-x86_64.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 3.2G Nov 29 2020 cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 2.4G May 14 22:31 manjaro-xfce-21.0.4-210506-linux510.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 1.2G Aug 28 10:22 ubuntu-20.04.3-live-server-amd64.iso
➜ os ll | tac
-rwxr--r-- 1 sunzhengbo sunzhengbo 1.2G Aug 28 10:22 ubuntu-20.04.3-live-server-amd64.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 2.4G May 14 22:31 manjaro-xfce-21.0.4-210506-linux510.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 3.2G Nov 29 2020 cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso
-rwxr--r-- 1 sunzhengbo sunzhengbo 679M Dec 5 2020 archlinux-2020.09.01-x86_64.iso
total 7.5G
rev 按字符反序输出
使用示例:
➜ os echo 'shell' | rev
llehs
应用场景:获取每行文本最后6个字符
➜ os ll | awk 'NR>1{print $NF}'
archlinux-2020.09.01-x86_64.iso
cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso
manjaro-xfce-21.0.4-210506-linux510.iso
ubuntu-20.04.3-live-server-amd64.iso
➜ os ll | awk 'NR>1{print $NF}' | rev | cut -c -6 | rev
64.iso
31.iso
10.iso
64.iso