linux常用命令

#查找当前目录的images子目录下以.gif结尾的文件,并将文件输出达到gif.txt
find ./images/ -name '*.gif' > gif.txt
#统计一个文件的行数,-c字节数,-w字数
wc -l gif.txt
#xargs从管道或者stdin中读取数据,传递给下一条命令
find /etc -name "*.conf" | xargs ls –l
#找出以.gif结尾的文件并删除
find ./images/ -name *.gif | xargs rm -f
#查找文件内容
grep "被查找的字符串" 文件名
例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件
grep "thermcontact" */*.in



#寻找文件夹下所有.jpg文件并移动到另一个文件夹
find ./flickr -name '*.jpg' | wc -l


find ./flickr -name '*.jpg' | xargs -l '{}' mv {} ./flickr_image


find ./flickr -name '*.jpg' -exec mv {} ./flickr_image \;


#find的其他用法,可以设定多个条件


#and 为-a  默认缺省
find –name 'tmp' –xtype c -user 'inin'


#or 为-o
find –name 'tmp' –o –name 'mina*'


#not 为!
find ! –name 'tmp'


#逻辑选项可以用括号括起来,避免引起误解,需要加转义字符“\”
find \(–name 'tmp' –xtype c -user 'inin' \)


#find -i和-I的用法
#加-i 参数直接用 {}就能代替管道之前的标准输出的内容(废弃)
#加-I 参数 需要事先指定替换字符


#显示前10条
ls -1 | head -10
ls -1 | sort -u | head -10


#找出前10个文件放入temp目录
find images/* | head -10 | xargs -I '{}' cp {} temp/


#shell修改文件名
for i in $(ls .)
do
mv $i $(echo $i|sed 's/txttxt/t/g')
done


#匹配数字
for i in $(ls .);
do mv $i $(echo $i|sed 's/Angkor_[0-9]\{3\}//'); 
done


#删除文件中的某一段字符(错误出现相同名字的证明没有匹配成功)
for i in $(ls .)
do 
mv $i $(echo $i|sed 's/_Info//')
done




#文件名中出现空格的时候,上面方法会出错,因为for读取默认以空格分开
ls * | while read file
do echo $file
done
#这种方法会出错,因为$file中有空格,需要用引号
ls * | while read file
do
mv $file $(echo $file|sed 's/_Info//')
done


#成功
find .|while read f; do mv "$f" $(echo $f|sed 's/ /_/'); done




#但是上面的没有过滤,下面会先过滤出有空格的文件
ls * | while read f
do
if [[ $f=~" " ]];then
mv $f $(echo $f | sed 's/ //g')
fi
done




ls * | while read f
do
if [[ $f = *\ * ]];then
mv "$f" $(echo $f|sed 's/ /_/g')
fi
done










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值