我有一个包含大量图像的文件夹,用于多语言网站,图像以下一格式存储.file.lang_code.jpg,在部署脚本上我想为我正在部署的网站选择正确的图像将它复制到filename.jpg,这样我就可以在站点之间共享相同的CSS。
所以,我需要的是命令重命名,但执行副本,而不是移动,因为我需要保留所有文件。
我正在使用下一个代码,但我发现它过于复杂且非常糟糕。
find -name "*.es.*" -print0 | xargs --null -I {} sh -c "echo {} | sed 's/.es//' | xargs -I }{ sh -c 'cp {} }{'"
答案 0 :(得分:2)
答案 1 :(得分:1)
find -name '*.es.*' -exec bash -c 'cp "$1" "${1/.es./.}"' modlang {} \;
答案 2 :(得分:1)
bash 4
shopt -s globstar
for file in **/*.es*
do
newfilename=${file/.es/}
cp "$file" ""$newfilename"
done
使用find
find . -type f -iname "*.es.*" -print | sed 's/\(.*\)\.es\.\(.*\)/mv \1.es.\2 \1\2/' |bash
答案 3 :(得分:0)
for循环怎么样?
for x in *.es.* ; do
xx=$(echo ${x} | sed 's/\.es//')
cp ${x} ${xx}
done
答案 4 :(得分:0)
嗯..你可以复制你想要的所有jpg,把它们放在你需要的目录中,然后从那里重命名它们?
类似的东西:
cp *.jpg /src /dst
cd /dst && rename 's/\.es//' *.jpg
rename命令是perl脚本的包装器。