我有一个名为“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
。