gpt4 book ai didi

bash - 将具有扩展名的文件移动到某个位置

转载 作者:行者123 更新时间:2023-11-29 08:46:41 27 4
gpt4 key购买 nike

如何将文件夹中的所有 .txt 文件和所有包含的文件夹移动到目标目录中。

最好将它们重命名为它们所在的文件夹,尽管这并不重要。我对 bash 不是很熟悉。

最佳答案

要递归移动文件,请将 findmv 结合使用。

find src/dir/ -name '*.txt' -exec mv -t target/dir/ -- {} +

或者,如果在没有 GNU 版本的 find 的 UNIX 系统上,例如 macOS,请使用:

find src/dir/ -name '*.txt' -exec mv -- {} target/dir/ ';'

移动文件时重命名文件比较棘手。一种方法是使用 "${var//from/to}" 循环将所有出现的 from 替换为 to $变量

find src/dir/ -name '*.txt' -print0 | while IFS= read -rd $'\0' file; do
mv -- "$file" target/dir/"${file//\//_}"
done

这很难看,因为 from 是一个斜线,需要转义为 \/

另见:

关于bash - 将具有扩展名的文件移动到某个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345714/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com