如何解决Bash,移动和重命名文件到基本父目录名称
在这些基本父文件夹中的每一个中,我都有一个具有相同名称的文件夹(结果)。
在每个结果文件夹中,我有一个结果文件 (data.txt),在每个 base-parent-folder 中也命名相同。
我需要将所有 data.txt 文件移动到一个新文件夹 (newfolder),并将它们重命名为 base-parent-folder 名称。
for name in ./*/*/data.txt; do
mv "$name" "../newfolder/$(basename -- "$(dirname -- "$name")").txt";
done
这将移动文件,但将 data.txt 文件重命名为 result.txt,而不是唯一的基本父文件夹名称。
非常感谢帮助:D
我有什么:
data\data1\result\data.txt
data\data2\result\data.txt
data\data3\result\data.txt
data\data4\result\data.txt
data\data5\result\data.txt
我想要的:
data\newfolder\data1.txt
data\newfolder\data2.txt
data\newfolder\data3.txt
data\newfolder\data4.txt
data\newfolder\data5.txt
解决方法
for f in */*/data.txt;
do mv "$f" "./newfolder/${f%/*/*}.txt";
done
为我工作。 ./
部分不起作用。它想在移动文件时添加一个名为 .
的额外文件夹。
感谢您的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。