首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从很长的文件列表的两端

从很长的文件列表的两端
EN

Ask Ubuntu用户
提问于 2017-12-22 21:08:07
回答 1查看 2.6K关注 0票数 1

我在NFS上有一个包含2个million+节点的文件列表。我必须运行相当多的文件权限更改、所有者更改等等。当我运行chmodchown (甚至rmmv)之类的命令时,进程需要很长时间才能完成,因为它们都必须访问文件系统中的每个节点。

我想在此实现一些准形式的并行化,因为我已经通过NFS共享了访问权限。有没有办法拆散(碎片?)一个文件列表,以便在许多主机上运行chown,chmod,rm,mv等可以更快地完成总任务?想象一下,两个主持人从双方开始,并在中间类型的交易会议。

EN

回答 1

Ask Ubuntu用户

发布于 2017-12-22 21:19:13

Meet parallel (sudo apt install parallel):

GNU parallel是一个shell工具,用于使用一台或多台计算机并行执行作业。作业可以是单个命令,也可以是必须针对输入中的每一行运行的小脚本。典型的输入是文件列表、主机列表、用户列表、URL列表或表列表。作业也可以是从管道读取的命令。然后,GNU并行可以将输入分成块,并将一个块并行地输送到每个命令中。 (…)对于输入的每一行,parallel将以行作为参数执行command。如果没有给出命令,则执行输入行。有几行将并行运行。GNU并行通常可以作为xargscat | bash的替代品。

示例

代码语言:javascript
复制
find . -type f -print0 | parallel -0 chmod +w

这将递归地查找当前目录中的每个文件并在其上运行chmod +w,同时执行多个进程--默认情况下每个CPU核心执行一个进程。

有关更多信息,请参见man parallel,特别是说明示例的精彩列表。youtube上也有一个带有示例视频的播放列表

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/988759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档