如何在同一目录中复制大量文件并替换其名称中的年份?
我有这个(可以是不同的文件名和扩展名):
filename1-2014.ext
filename2-2014.ext
filename3-2014.ext
...
filenamen-2014.ext
我想要这个:
filename1-2014.ext
filename1-2015.ext
filename2-2014.ext
filename2-2015.ext
filename3-2014.ext
filename3-2015.ext
...
filenamen-2014.ext
filenamen-2015.ext
我可以制作一个脚本来做到这一点,但我想知道是否有一种简单的方法可以做到这一点?
答案1
与查找:
find . -type f -name '*2014*' -exec bash -c 'cp "$0" "${0/2014/2015}"' {} \;
在 shell 循环中:
for file in *2014*; do cp "$file" "${file/2014/2015}" done
答案2
for i in *-2014.ext; do
cp "$i" "${i%2014.ext}2015.ext"
done
对于每个文件,删除旧后缀并添加新后缀。
如果您有不同的扩展,您可以使用 bash 的模式替换功能:
for i in *-2014.*; do
cp "$i" "${i/2014/2015}"
done