Write the Code. Change the World.

1月 05

批处理是一种高效的操作模式。既然是批量,就得有迹可循,有规则可定义。比如给最后5个文件打包压缩,又比如只将.jpg文件打包压缩。下边,就来总结下常见的操作。

先看下for循环

cd ss
for i in `find ./*.jpg`;
do echo $i;
done

上边的 for 循环会将 ss文件下,所有的以 .jpg 结尾的文件名列出来。需要注意 符号以及变量$i`。

批量重命名

ss 文件夹里边所有文件文件名第一个字替换成 vini

cd ss

for i in `ls`;

do mv -f $i `echo $i | sed 's/^./vini/'`;

done

给一个文件重命名我们使用 mv。看着命名是不是觉得有熟悉的味道,那就是正则。^ 是匹配开头。

ss 文件夹里边所有文件文件名最后五个字符替换成 vini

cd ss

for i in `ls`;

do mv -f $i `echo $i | sed 's/.....$/vini/'`;

done

ss 文件夹里边所有文件文件名末尾添加 vini

cd ss

for i in `ls`;

do mv -f $i `echo $i'vini'`;

done

ss 文件夹里边所有文件文件名小写变大写

cd ss

for i in `ls`;

do mv -f $i `echo $i | tr a-z A-Z`;

done

批量压缩

常见压缩命令:

tar -cvf vini.tar *.jpg //将目录里所有的jpg文件打包成vini.tar
tar -czf vini.tar.gz *.jpg //将目录里所有的jpg打包成tar后,再将其用gzip压缩
tar -cjf vini.tar.bz2 *.jpg //将目录里所有的jpg打包成tar后,再将其用bzip2压缩
tar -cZf vini.tar.Z *.jpg //将目录里所有的jpg打包成tar后,再将其用compress压缩

rar vini.rar *.jpg //rar格式压缩,需要先下载 rar for linux
zip vini.zip *.jpg //zip格式压缩,需要先下载 zip for linux

如果想压缩后,直接在win下使用,可以选择压缩成 .tar.gz,.rar,.zip 等格式。

解压

tar -xvf vini.tar //解压tar包
tar -xzvf vini.tar.gz //解压tar.gz包
tar -xjvf vini.tar.bz2 //解压tar.bz2
tar -xZvf vini.tar.Z //加压tar.Z

unrar e vini.rar //解压rar
unzip vini.zip //解压zip

ss 目录以及子目录所有文件打包成一个文件

# -r 递归处理
zip -r vini.zip ss

ss 目录下的所有的 jpg 文件单个打包

cd ss

for i in `find ./*.jpg`;
do zip $i.zip $i;
done

ss 目录下最后5个文件压缩成一个文件

cd ss
# A 列出除了"."和".."以外的文件
# $( ) 相当于 ` `,其中放的是命令
tar -czf vini.tgz $(ls -A|tail -n 5)

tail 命令

# 输出log的最后5行
tail -n 5 2018-01-05.log

整理来源

http://blog.chinaunix.net/uid-16728139-id-3321890.html

http://blog.csdn.net/Number_0_0/article/details/73291182

https://www.cnblogs.com/ginvip/p/6351696.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注