当前目录下所有.tmp文件统一加后缀.log
#ls *.tmp |xargs -i mv {} {}.log
#find . -name "*.tmp" -type f -exec mv -f {} {}.log \;
批量修改后缀.tmp改成.log
#for file in $(find . -name "*.log" -type f);do mv $file ${file%.*}.log;done
file=/dir1/dir2/dir3/my.file.txt
我们可以用 ${ } 分别替换获得不同的值:
${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt
${file#*.}:拿掉第一个 . 及其左边的字符串:file.txt
${file##*.}:拿掉最后一个 . 及其左边的字符串:txt
${file%/*}:拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值)
${file%.*}:拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
#!/bin/sh
while true
do
d1=/home/yunwei
d2=$(date +%Y%m%d)
d3=$(date +%H)
[ -d $d2/$d3 ] ||mkdir -p $d2/$d3 && mv -f $d1/*.fin $d2/$d3
for file in $(ls *.fin)
do
mv -f ${file} ${file%.*}
done
sleep 60
done
阅读(1641) | 评论(0) | 转发(0) |