Linux命令干货分享
Posted 骨灰级猫腻哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令干货分享相关的知识,希望对你有一定的参考价值。
1.显示目录下占用最多的前n个文件或者目录
du -ak /data/logs | sort -nrk 1 | head -5
上面这个单行脚本的缺点在于它在结果中包含了目录。如果我们只是需要找出最大的文件而不是目录,
可以按照下面的方法改进脚本,使它只输出最大的文件。
find /data/logs -type f -exec du -k {} \; | sort -nrk 1 | head -5;
2.批量删除目录下指定的文件
find . -type f -name "*.txt" -print | xargs rm -f
这样做很危险。很多文件名中都可能会包含空格符(' '),
因此xargs很可能会误认为它们是定界符(例如,hell text.txt会被xargs误解为hell和text.txt)。
只要我们把find的输出作为xargs的输入,就必须将 -print0与find结合使用,以字符null('\0')来分隔输出。
find . -type f -name "*.txt" -print0 | xargs -0 rm -f
3.批量重命名文件
count=1;
for img in `find . -iname '*.png' -o -iname '*.jpg' -type f -maxdepth 1`
do
new=image-$count.${img##*.}
echo "Renaming $img to $new"mv "$img" "$new"
let count++
Done
该脚本将当前目录下所有的.jpg和.png文件重命名,
新文件名的格式为image-1.jpg、image-2.jpg、image-3.jpg、image-4.png等。${img##*.}获取文件名称的后缀。
4.分割文件和数据
split -b 50k test.log
结果:xaa xab xac xad
上面的命令将test.log分割成多个文件,每一个文件大小为10KB。
这些文件以xab、xac、xad的形式命名。这表明它们都有一个字母后缀。
如果想以数字为后缀,可以另外使用-d参数。此外,使用 -a length可以指定后缀长度:
$ split -b 10k test.log -d -a 4 prefix
除了k(KB)后缀,还可以使用M(MB)、G(GB)、c(byte)、w(word)等后缀。
prefix表示文件前缀。
$ split -l 10 test.log#
分割成多个文件,每个文件包含10行
以上是关于Linux命令干货分享的主要内容,如果未能解决你的问题,请参考以下文章