python - 合并目录树的最快方法

标签 python linux

我有多个表单目录

foo/bar/baz/alpha_1/beta/gamma/files/uniqueFile1
foo/bar/baz/alpha_2/beta/gamma/files/uniqueFile2
foo/bar/baz/alpha_3/beta/gamma/files/uniqueFile3

将这些目录合并到单个目录结构中的最快方法是什么

foo/bar/baz/alpha/beta/gamma/files/uniqueFile1...uniqueFile3

我可以写一个 python 脚本来做到这一点,但有没有更快的方法在 debian 机器上做到这一点? rsync 在这种情况下有帮助吗?

编辑:

很抱歉之前没有说清楚,示例中的深度是 ~10-12 并且我不知道一些目录名称,例如 alpha*,这些是在丢弃日志时随机生成的。我之前使用带通配符的 find 来列出这些文件,但现在在路径中添加了另一个级别,这导致我的查找查询从 0.004s 开始超过一分钟。所以我正在寻找更快的解决方案。

/known_fixed_path_5_levels/*/known_name*/*/fixed_path_2_levels/n_unique_files

变成了

/known_fixed_path_5_levels/*/known_name*/*/xx*/fixed_path_2_levels/unique_file_1
/known_fixed_path_5_levels/*/known_name*/*/xx*/fixed_path_2_levels/unique_file_2
.
.
/known_fixed_path_5_levels/*/known_name*/*/xx*/fixed_path_2_levels/unique_file_n

我基本上想像以前一样将所有这些独特的文件收集到一个地方。

最佳答案

使用查找:

mkdir --parents foo/bar/baz/alpha/beta/gamma/files; #create target directory if nessessary
find foo/bar/baz/alpha_[1-3]/beta/gamma/files -type f -exec cp {} foo/bar/baz/alpha/beta/gamma/files \;

关于python - 合并目录树的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40620726/

相关文章:

linux - 在我的网络服务器上的子文件夹中查找和删除文件名列表

c++ - pthreads 编译但未创建二进制文件

python - 从 OSX 为 Windows 创建 Kivy 包

python - 使用 pandas 从 CSV 中读取十进制表示形式的 float

Python 根据字符串条件生成新列

python - 无效的语法错误python 2.6

python - 使用局部加权回归 (LOESS/LOWESS) 预测新数据

linux - signalfd 和 sigaction 之间可以竞争吗?

regex - 如何用awk拆分单列的输出?

python - 如何使用 Python 在 Selenium Webdriver 中高效迭代变量数?