如何复制具有某个扩展名的所有文件,并重命名副本的扩展名?



例如,我想将当前目录下的所有文件与.template匹配,复制并将其重命名为.fruit

一直编辑之前一直编辑<>
apple.template
pineapple.template
orange.template
book.ex
desk.tx
一直编辑后<编辑>
apple.template      <-- old
pineapple.template  <-- old
orange.template     <-- old
book.ex             <-- old
desk.ex             <-- old
apple.fruit         <-- new
pineapple.fruit     <-- new
orange.fruit        <-- new

你可以用一个简单的循环来解决这个问题:

for i in *.template
do 
cp "$i" "${i%.template}.fruit"
done
ls -1q *template | sed -s 's/.template$//' | xargs -I {} cp "{}.template" "{}.fruit"

取所有以.template结尾的文件,获取它们的基本名称(不带扩展名),并将文件复制到具有新扩展名的文件。

while read FILE
do
cp "$FILE" "${FILE%.*}".fruit
done < <(find . -maxdepth 1 -type f -name "*.template")

最新更新