⑴ 如何用脚本语言生成大文件
Linux shell脚本语言:
dd if=/dev/zero of=~/test.bin bs=1k count=1000
这是生成1M大小文件(test.bin)的方法。
稍作解释:
if - File used as stdin
of - File used as stdout
bs - Bytes of a block
count - number of blocks
修改bs和count这两个值可以控制生成文件的大小。
⑵ shell脚本:需根据文件的大小进行压缩
sh -x yourshell
看看每个步骤
你的第一步就有问题了, file就是把目录下的文件全都列出来了,取第二列就是文件名了。怎么去和2000000比较???
tar也有问题,你压缩成什么?少了参数吧。。。
rm也有问题。你才压缩一个文件,就把整个目录干掉了、、、
find . -size +2M 这样不就把文件大于2M的弄出来了。。。仅供参考:
[root@localhost ~]# ls -sh a
27M a
[root@localhost ~]# find . -size +2M
./a
[root@localhost ~]# find . -size +2M -exec tar cjf /tmp/{}.tar.bz2 {} \;
[root@localhost ~]# ls /tmp/
a.tar.bz2
⑶ 如何使得shell脚本的if语法来判断一个文本文件的大小 例如 if [ ] ;then 如果这
#!/bin/sh
a=` -s yourfile.txt | awk '{print $1}'`
if [ $a -eq 1024 ]
then
echo "OK"
else
echo "ERROR"
fi
⑷ linux shell脚本判断某个文件的大小,符合条件则备份并重命名
cat test.sh
#!/bin/sh
file=$1
file_size=` $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.
⑸ 如何使用shell脚本生成一个大小为300M的文件
有时候,我们需要生成指定大小的随机文件,比如在学习过程中使用的测试文件。
dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512;c=1;k=1024;w=2
命令:
Linux:/qinys # dd if=/dev/zero of=tmp.data bs=100m count=3
命令解释:
该命令会创建一个大小为100m的文件tmp.data;if代表输入文件(input file),of代表输出文件(output file),bs代表以字节为单位的块大小(block size,BS),count代表被复制的块数。(如果把count=3,那么文件大小为300M)《Linux就该这么学》一起学习linux
/dev/zero是一个字符设备,他会不断的返回0值字节(\0)
⑹ linux的shell 脚本里怎么用if 判断文件大小呀
需要几个工具 基本上思路是 用 配合awk取得文件大小 ,然后if判断
伪代码如下
s=` -k logfile|awk '{print $1}'`
if [ $s -gt 1024000000 ]
then
停止oracle监听进程
rm -rf logfile && touch logfile
启动oracle监听进程
else
continue
fi
⑺ linux的shell 脚本里怎么用if 判断文件大小呀
find有一个参数 -size +10000M
你可以定义一个变量 它的值为
查找目录下 是否满足同时名字叫123.cap 并且尺寸大于10000M的
是就赋予var
先执行tcpmp 后台运行
然后做一个循环 每隔一秒判断这个var
var=$(find . -name "123.cap" -size +10000M)
判断这个var是否不为空
当不为空 那么代表文件超出10g了 那么就完毕吧 exit
思路这样 你自己试试看
⑻ Shell脚本得到文件夹大小
ls -ld 文件夹路径 | awk '{print int($5/1024)}'
或者:
-b 文件夹路径 | awk '{print int($1/1024)}'
跟你上面计算文件大小类似,得到的都是以KB为单位的大小。
如果要以Byte为单位,不要除以1024也不要int取整就是了。
注意:Linux的ext2或ext3文件系统会给目录分配一个inode块(索引节点),用来记录文件信息,所以文件夹的大小不是简单地将其中文件大小累加就能得到的,还包括了这个索引节点的大小。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
⑼ 求高手帮忙编写shell脚本统计当前目录中普通文件总的大小
你这样出来不只是普通文件 包括目录或者其他类型文件
ls -l |grep ^- |awk '{print $5}'|awk '{$sum=$sum+$1}END{print $sum}'
⑽ linux shell脚本判断某个文件的大小,符合条件则备份并重命名
cattest.sh
#!/bin/sh
FILE=$1
FILE_SIZE=`$FILE|awk'{print$2}'`
if[$FILE_SIZE-ge10485760]
then
cp-p$FILE$FILE-bak
fi
chmod+xtest.sh
./test.sh1.txt
逐行解释
查看脚本文件test.sh
定义脚本默认用sh执行
将文件路径赋予FILE变量。$1 表示位置变量即下面的1.txt
计算文件大小并赋予FILE_SIZE变量
如果文件大小大于等于10M. 10485760为10M,-ge为大于等于。
if语法关键字
将文件重命名备份
if语法关键字
空行
赋予脚本test.sh可执行权限
执行脚本,输入位置变量1.txt.