将子目录中的所有文件移动到主目录中

将子目录中的所有文件移动到主目录中

我有一个名为“public”的目录,其中包含一千个子目录,例如:

public/63a/e9b/79a/file.pdf 
public/64a/2cd/184/other_file.pdf
...

我的目标是将这些子目录中包含的所有文件移动到主目录(即公共目录)。
我想我需要一个递归函数来做到这一点。
有人能帮我吗?

答案1

执行此操作的工具已经是标准 Linux 环境的一部分:

find public -type f -exec mv {} public/ \;

解释:

我们希望对find文件(而不是目录(-type f))public及其子结构进行搜索,并对找到的每个文件执行(-exec)一个命令,即将它(由表示{})移动为公共文件。

转义的分号仅标记序列的结束-exec

相关内容