查找最大文件等shell集锦

本文介绍了一系列Shell脚本实用技巧,包括查找最大文件的方法、如何判断字符串中是否存在重复字符、批量重命名文件以及批量终止指定名称进程的命令。这些技巧对于日常的文件管理和系统维护非常有用。

1.查找最大文件:

find ./ -type f|xargs ls -lrt|sort -nrk 5|more

2.判断是否有重复字符的shell实现

echo "isrepeat"|awk 'BEGIN{FS=""}''{for(i=1;i<=NF;i++){a[$i]++;if(a[$i]>=2){print "true";break;}}}END{print "false"}'

3.批量重命名,非rename。

find ./ -type f|awk -F / '{oldname=$0;gsub($NF,"Benzil"$NF);cmd="mv "oldname" "$0;system(cmd);}'

4.批量杀进程的另一种写法
例如杀掉Chrome

ps -ef|awk '/Chrome/{if(!index($0,"awk")){cmd="kill -9 "$2;system(cmd);}}'
shell 编程里,查找指定目录下最大文件有多种实现方法,以下是几种常见的方式: ### 查找当前目录下最大文件(包括子目录里文件) ```bash find . -type f -exec stat -c "%s %n" {} \; | sort -nr | head -1 ``` 这个命令使用 `find` 命令递归查找当前目录(`.`)下的所有文件(`-type f`),`-exec stat -c "%s %n" {} \;` 会对每个找到的文件执行 `stat` 命令,以字节为单位输出文件大小(`%s`)和文件名(`%n`),然后通过 `sort -nr` 按文件大小降序排序,最后用 `head -1` 取排序后的第一行,即最大文件[^1][^2]。 ### 只考察目录下的文件,排除掉目录 ```bash ls -l | awk '/^-/ {print $5 $8}' | sort -nr | head -1 ``` `ls -l` 列出当前目录下文件的详细信息,`awk '/^-/ {print $5 $8}'` 过滤掉以 `d` 开头的目录信息,只保留文件信息,并取出文件大小(`$5`)和文件名(`$8`),接着通过 `sort -nr` 排序,最后用 `head -1` 取最大文件[^1][^2]。 ### 把子目录当做一个文件来看 ```bash du -s * | sort -nr | head -1 ``` `du -s *` 会返回当前目录里每个文件和子目录的大小,`sort -nr` 按大小降序排序,`head -1` 取最大文件或目录。不过这种方法会把子目录作为一个整体计算大小,最大的可能是某个子目录而不是文件。若要以人类可读的形式显示大小,可以加上 `-h` 参数,即 `du -sh * | sort -nr | head -1`[^1][^2][^3]。 ### 过滤掉目录,取文件大小和名字 ```bash ls -l | awk '/^[^d]/ {print $5,$9}' | sort -nr | head -1 ``` `ls -l` 查看完整的文件信息,`awk '/^[^d]/ {print $5,$9}'` 过滤掉 `d` 开头的目录信息,取出文件大小(`$5`)和文件名(`$9`),然后排序并取第一个,即最大文件[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值