#bash #shell #for-loop #rename
#bash #оболочка #for-цикл #переименовать
Вопрос:
у меня 1000 папок, и каждая папка содержит 5 файлов с одинаковыми именами, которые я хочу скопировать и переименовать под разными именами.
Например:
Путь к моим папкам
/home/yuan/data/foldera1/*
/home/yuan/data/foldera2/*
/home/yuan/data/foldera3/*
/home/yuan/data/foldera4/*
.........................
/home/yuan/data/foldera1000/*
И файлы, которые я хочу переименовать, это
data1.ax.ze to data.a1.z1
datay.ax.z1 to data.a2.z2
dataw.ac.zt to data.a3.z3
data4.an.z5 to data.a4.z4
datax.aa.zq to data.a5.z5
я попробовал сценарий ниже: но он не переименовывает файлы внутри каждой папки
for file in /home/yuan/data/foldera?/*
do
cp data1.ax.ze data.a1.z1
cp datay.ax.z1 data.a2.z2
cp dataw.ac.zt data.a3.z3
cp data4.an.z5 data.a4.z4
cp datax.aa.zq data.a5.z5
done
Надеюсь, эксперты помогут мне решить эту проблему.Заранее спасибо.
Ответ №1:
for dir in /home/yuan/data/foldera*; do
cd "$dir"
cp data1.ax.ze data.a1.z1
cp datay.ax.z1 data.a2.z2
cp dataw.ac.zt data.a3.z3
cp data4.an.z5 data.a4.z4
cp datax.aa.zq data.a5.z5
done