find命令会递归查找,尤其适合有嵌套目录(子目录)的情况。
如果当前目录下没有子目录,只有文件,那么也可以这样处理txt文件。
for ofile in *.txtdo
size=`wc -c ofile | cut -d" " -f1`
[ $size -gt $((105*1024*1024)) ] && mv $ofile /home/bak
done
有时候,我们需要生成指定大小的随机文件,比如在学习过程中使用的测试文件。dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512;c=1;k=1024;w=2
命令:
Linux:/qinys # dd if=/dev/zero of=tmp.data bs=100m count=3
命令解释:
该命令会创建一个大小为100m的文件tmp.dataif代表输入文件(input file),of代表输出文件(output file),bs代表以字节为单位的块大小(block size,BS),count代表被复制的块数。(如果把count=3,那么文件大小为300M)《Linux就该这么学》一起学习linux
/dev/zero是一个字符设备,他会不断的返回0值字节(\0)
cat test.sh#!/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 test.sh
./test.sh 1.txt
逐行解释
1.
查看脚本文件test.sh
2.
定义脚本默认用sh执行
3.
将文件路径赋予file变量。$1
表示位置变量即下面的1.txt
4.
计算文件大小并赋予file_size变量
5.
如果文件大小大于等于10m.
10485760为10m,-ge为大于等于。
6.
if语法关键字
7.
将文件重命名备份
8.
if语法关键字
9.
空行
10.
赋予脚本test.sh可执行权限
11.
执行脚本,输入位置变量1.txt.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)