linux shell脚本判断某个文件的大小,符合条件则备份并重命名

linux shell脚本判断某个文件的大小,符合条件则备份并重命名,第1张

cat testsh

#!/bin/sh

file=$1

file_size=`du $file | awk '{print $2}'`

if [ $file_size -ge 10485760 ]

then

cp -p $file $file-bak

fi

chmod +x testsh

/testsh 1txt

逐行解释

1

查看脚本文件testsh

2

定义脚本默认用sh执行

3

文件路径赋予file变量。$1

表示位置变量即下面的1txt

4

计算文件大小并赋予file_size变量

5

如果文件大小大于等于10m

10485760为10m,-ge为大于等于。

6

if语法关键字

7

将文件重命名备份

8

if语法关键字

9

空行

10

赋予脚本testsh可执行权限

11

执行脚本,输入位置变量1txt

这不一行命令就搞定了吗:

ls -lS | awk '{print " " }'

你可以将它保存为一个 shell 脚本。

命令运行截图

ls -lS 的作用是查看文件信息,并以文件大小降序。

awk '{print $9 " " $5}' 的作用是从这些信息中过滤出文件名和文件大小,以空格隔开。

当有新的硬件设备加载到linux系统上的时候,linux系统会自动刷新一条日志信息到dmesg里面。你可以在刚插入U盘的时候,立即执行dmesg命令,然后就能看到这个条日志记录,可以看到U盘对应的盘符。

根据这个思路,你可以通过shell脚本监控这个日志,只要有磁盘设备更新,就取得它的盘符。假设这里是/dev/sdg,获取到盘符以后,再使用命令

fdisk -l /dev/sdg

就可以输出这个磁盘的容量信息以及剩余空间的大小,通过字符串查找把对应的值提取出来即可。

基本思路就是这个,不知道我说清楚了没有,希望可以帮助到你。

find命令会递归查找,尤其适合有嵌套目录(子目录)的情况。

如果当前目录下没有子目录,只有文件,那么也可以这样处理txt文件。

for ofile in txt

do

   size=`wc -c ofile | cut -d" " -f1`

   [ $size -gt $((10510241024)) ] && mv $ofile /home/bak

done

以上就是关于linux shell脚本判断某个文件的大小,符合条件则备份并重命名全部的内容,包括:linux shell脚本判断某个文件的大小,符合条件则备份并重命名、设计一个shell脚本,对该文件夹下的所有文件按照大小进行排序,从大到小输出每个文件的名字和大小、如何使用shell脚本, 当U盘挂载到Linux系统上时, 自动获取U盘大小和剩余的空间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9786189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存