需求说明:
线上之前使用的图片没有经过处理,比较大。应产品同事要求,将图片拿出来处理后再替换之前的图片,图片名不变。
/tmp/image目录下存放的修改后的图片
[root@fangfull_web1 ~]# ls -l /tmp/image|head -10
1
2
3
4
5
6
7
8
9
10
|
total 66376
-rw-r--r-- 1 root root 114118 Jan 18 17:26 201407281934401406547280.jpg
-rw-r--r-- 1 root root 110450 Jan 18 17:26 201407281934511406547291.jpg
-rw-r--r-- 1 root root 156443 Jan 18 17:26 201407281937341406547454.jpg
-rw-r--r-- 1 root root 89006 Jan 18 17:26 201407281938241406547504.jpg
-rw-r--r-- 1 root root 136594 Jan 18 17:26 201407281938341406547514.jpg
-rw-r--r-- 1 root root 74327 Jan 18 17:26 201407281938551406547535.jpg
-rw-r--r-- 1 root root 114118 Jan 18 17:26 201407281940071406547607.jpg
-rw-r--r-- 1 root root 110450 Jan 18 17:26 201407281940161406547616.jpg
-rw-r--r-- 1 root root 105628 Jan 18 17:26 201407281940241406547624.jpg
|
线上图片存放的路径是/var/www/vhosts/www.fangfull.com/main/upload/,修改后的图片都有存放到这里
比如:注意find命令中的目标目录后面一定要加上/(比如下面的.../upload/,不能写成.../upload,否则查找不到)
1
2
3
4
|
[root@fangfull_web1 ~]
# find /var/www/vhosts/www.fangfull.com/main/upload/ -name 201407281934401406547280.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281934401406547280
.jpg
[root@fangfull_web1 ~]
# find /var/www/vhosts/www.fangfull.com/main/upload -name 201407281934401406547280.jpg
[root@fangfull_web1 ~]
#
|
那么修改后的图片批量替换之前的图片的脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#!/bin/bash
for
m
in
`
ls
-l
/tmp/image
|
awk
-F
" "
'{print $9}'
`
do
for
i
in
`
cat
/tmp/b
.txt`
do
for
n
in
`
ls
"$i"
|
awk
-F
"/"
'{print $9}'
`
do
if
[ $m == $n ];
then
\
cp
-f
/tmp/image/
$m `
cat
/tmp/b
.txt|
grep
"$m"
`
else
echo
"123"
>
/dev/null
2>&1
fi
done
done
done
|
脚本解刨如下:
[root@fangfull_web1 ~]# ls -l /tmp/image|awk -F" " '{print $9}'|head -10
1
2
3
4
5
6
7
8
9
|
201407281934401406547280.jpg
201407281934511406547291.jpg
201407281937341406547454.jpg
201407281938241406547504.jpg
201407281938341406547514.jpg
201407281938551406547535.jpg
201407281940071406547607.jpg
201407281940161406547616.jpg
201407281940241406547624.jpg
|
[root@fangfull_web1 ~]# for i in $(ls -l /tmp/image|awk -F" " '{print $9}');do echo `find /var/www/vhosts/www.fangfull.com/main/upload/ -name "$i"` >> /tmp/b.txt;done
[root@fangfull_web1 ~]# cat /tmp/b.txt |head -10
1
2
3
4
5
6
7
8
9
10
|
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281934401406547280
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281934511406547291
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281937341406547454
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281938241406547504
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281938341406547514
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281938551406547535
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281940071406547607
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281940161406547616
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281940241406547624
.jpg
/var/www/vhosts/www
.fangfull.com
/main/upload/20140813/201408131047131407898033
.jpg
|
[root@fangfull_web1 ~]# ls /var/www/vhosts/www.fangfull.com/main/upload/20140728/201407281934401406547280.jpg |awk -F"/" '{print $9}'
1
|
201407281934401406547280.jpg
|
[root@fangfull_web1 ~]# cat /tmp/b.txt |grep 201407281934401406547280.jpg
1
|
/var/www/vhosts/www
.fangfull.com
/main/upload/20140728/201407281934401406547280
.jpg
|