在bash递归脚本中,如何在子目录中创建文件夹和移动文件



我有一个简单的问题,我可能可以手动完成,但需要自动脚本,因为我有820个文件夹!

有一个目录"data"有820个文件夹:/data/001..data/820。

在每个文件夹中,我都有相同的文件结构和文件名。我想创建一个名为"thrash"的新文件夹,并将两个名为"one.exe"one_answers"nine.dat"的文件移动到thrash中。

我想递归地为"数据"文件夹中的所有文件夹执行此操作。

因此,创建/data/001/thrash,然后将one.exe和nine.dat移动到/data/001/thrash。然后创建/data/002/thrash,然后将one.exe和nine.data移动到/data/002/thrash等

有没有一个巧妙的方法?请帮忙。

只需循环浏览目录。

#!/bin/bash
mkdir -p data/*/thrash
for folder in data/*/; do
mv "${folder}one.exe" "${folder}nine.exe" "${folder}thrash"
done
for dir in rootdir/*
do
if [[ -d ${dir} ]]; then
(
cd ${dir} || return
mv one.exe newfolder/one.exe
)
fi
done

调整这个

一个单行(应该在数据目录中运行(:

for d in {001..820}; do mkdir $d/thrash; mv $d/{one.exe,nine.dat,thrash}; done

最新更新