针对大型文件夹的并行 tar 和分割

2024-04-09

我有一个非常大的文件夹,我想对其进行 gzip 压缩并拆分以进行存档:

#!/bin/bash
dir=$1
name=$2
size=32000m
tar -czf /dev/stdout ${dir} | split -a 5  -d -b $size - ${name}

有没有办法用 gnu parallel 来加速这个过程? 谢谢。


并行 gzip 压缩的最佳工具似乎是pigz http://zlib.net/pigz/。请参阅比较 http://vbtechsupport.com/1614/.

有了它,你可以有这样的命令:

tar -c "${dir}" | pigz -c | split -a 5 -d -b "${size}" - "${name}"

与它的选项-p您还可以指定要使用的线程数(默认为在线处理器数量,如果未知则为 8). See pigz --help or man pigz了解更多信息。

UPDATE

使用 GNU 并行,你可以这样做:

contents=("$dir"/*)
outdir=/somewhere
parallel tar -cvpzf "${outdir}/{}.tar.gz" "$dir/{}" ::: "${contents[@]##*/}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对大型文件夹的并行 tar 和分割 的相关文章

  • 子 shell 何时继承其父 shell 环境?

    什么情况下将shell的环境传递给子shell 子 shell 始终从父 shell 获取所有变量 man bash将描述所有使用子shell的情况 主要是 command command command and command 所谓环境只
  • 退出 bash 脚本但保持进程运行

    我正在运行服务器 需要使用参数执行以下命令 这些脚本目前工作得很好 但问题是当我运行脚本时我无法返回到控制台 它在控制台中保持运行 如果我强行停止它 那么该过程也会停止 我想继续运行该进程并返回到控制台 bin sh php home st
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • 具有非阻塞读取功能的 Bash 脚本

    我想使用命名管道将一些数据发送到根进程 这是脚本 效果很好 bin sh pipe tmp ntp if p pipe then mknod m 666 pipe p fi while true do if read line lt pip
  • ANSI 转义码在行尾有奇怪的行为

    重现步骤 考虑以下 shell 命令 echo e e 41mTest nTest2 e 0mTest3 它打印Test并在下一行中Test2具有红色背景 使用 ANSI 转义码 Test2后面直接是Test3这是无色的 行为 第一次执行此
  • 我可以在 R 中并行读取 1 个大 CSV 文件吗? [复制]

    这个问题在这里已经有答案了 我有一个很大的 csv 文件 需要很长时间才能阅读 我可以使用 parallel 或相关的包在 R 中并行读取此内容吗 我尝试过使用 mclapply 但它不起作用 根据OP的评论 fread来自data tab
  • IFS 分隔一个字符串,如“Hello”,“World”,“this”,“is,一个无聊”,“line”

    我正在尝试解析 csv 文件 但 IFS 遇到一些问题 该文件包含如下行 Hello World this is a boring line 各列用逗号分隔 因此我尝试使用以下代码分解该行 IFS read r a tempArr lt l
  • 如何复制每个扩展名为 X 的文件,同时保留原始文件夹结构? (类Unix系统)

    我正在尝试将每个 HTML 文件从 src 文件夹复制到 dist 文件夹 但是 我想保留原始文件夹结构 如果 dist 文件夹不存在 我想创建一个新文件夹 如果文件夹不存在则创建 d dist mkdir dist 复制每个文件 cp R
  • 找不到 NGINX brew 安装命令

    I do brew install nginx and get gt Downloading http nginx org download nginx 1 2 2 tar gz Already downloaded Library Cac
  • 如何在 mac 中使用“getopt”命令让 bash 处理长参数?

    我想让我的 bash 脚本处理长参数 我发现getopt 但 OS X 不支持它 谁能告诉我为什么getoptBSD 实现了 GNU 没有实现 我尝试构建getopt在 GNU C lib 中 但由于我对 Linux 的技能不佳而失败了 有
  • 如何在Python中使用多处理来加速循环执行

    我有两个清单 列表 A 包含 500 个单词 列表 B 包含 10000 个单词 我正在尝试为列表 A 找到与 B 相关的相似单词 我正在使用 Spacy 的相似函数 我面临的问题是计算需要很长时间 我是多处理使用的新手 因此请求帮助 如何
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • BASH 脚本编译多个 C++ 文件 - OpenCV

    请参见在C 和OpenCV中调用其他文件中的函数 https stackoverflow com questions 24442836 call functions in other files in c and opencv 对于最初的问
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • Bash 脚本:#!/bin/bash 是什么意思? [复制]

    这个问题在这里已经有答案了 在 bash 脚本中 什么是 bin bash第一行是什么意思 UPDATE 有区别吗 bin bash and bin sh 这就是所谓的shebang http en wikipedia org wiki S
  • touch命令在一个目录下创建多个文件(不同名称)

    我想制作一个在 bash 中创建目录和文件结构的脚本 我尝试过这样的事情 mkdir p 1 2 touch 1 2 a b c a b c 应该是在一个命令或其他命令中创建的文件 但由于某种原因 结构是这样的 current folder
  • 保存和恢复陷阱状态?管理多个陷阱处理程序的简单方法?

    有什么好的方法可以覆盖bash陷阱处理程序不会永久破坏可能已设置或尚未设置的现有处理程序 动态管理任意陷阱例程链怎么样 有没有办法保存陷阱处理程序的当前状态 以便以后可以恢复 在 Bash 中保存和恢复陷阱处理程序状态 我将提交以下堆栈实现
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • POSIX SH 构建循环变量,其元素包含空格

    这是我需要的代码 bin sh x1 a1 a2 x2 b1 b2 list SOMETHING for x in list do echo x done 以及我想要的输出 a1 a2 b1 b2 问题是 应该做什么SOMETHING是 我
  • 如何调用使用 Define 创建的 GNU make 宏?

    在我的 Makefile 中调用 GREP 的两种方式有什么区别吗 我有什么理由应该使用其中之一 两者似乎产生相同的结果 define GREP word 3 shell echo define FOO 0xfff00100 endef a

随机推荐

  • 同一数据库中的实体框架核心多个 DbContext 迁移

    在 Entity Framework 6 中 您可以为 DbContext 指定 ContextKey 以便在将一个数据库用于多个 DbContext 时 迁移表知道哪个迁移针对哪个 DbContext 在过去的几个小时里 我一直在尝试弄清
  • 适用于 Linux 的 NUMA 感知命名共享内存

    Windows API 提供了 CreateFileMappingNuma 函数 http msdn microsoft com en us library windows desktop aa366539 v vs 85 aspx htt
  • Ruby win32ole - 如何传递 VARIANT 参数?

    我正在尝试使用 Ruby 自动化 Windows 任务计划程序 我在 Windows Vista 下使用 Ruby 1 8 TaskFolder 对象的 RegisterTaskDefintion 方法采用两个 VARIANT 参数作为用户
  • Git 推送到错误的分支

    使用 git 进行一些 提交 和几次 推送 之后 我意识到我使用了错误的分支 现在我必须以某种方式删除我的更改wrong branch并提交并推送更改right branch 最好的 而且简单的 方法是什么 切换到该分支 检查git log
  • “LazyCorpusLoader”对象不可迭代

    以下示例创建一个字谜词典 然而 它抛出一个TypeError LazyCorpusLoader object is not an iterator import nltk from nltk corpus import words anag
  • 使用 jQuery 将单个事件处理程序绑定到多个事件

    我有以下 div 具有不同的 onblur onmousedown onmouseup 和 onfocus 功能 我想最小化代码 并且在 div 内只有一个函数调用来处理所有函数状态 我想用 jquery 来做到这一点 所以换句话说 我想创
  • 用 Python 表示网络

    我有一个顶点 例如dic a 0 b 1 c 2 d 3 e 4 f 5 n 6 m 7 g 8 我有两列如下代表顶点之间的关系 a a b d e f c f n f m g 我想通过一条边将第一列中的每个顶点与第二列中的相应顶点关联起来
  • R中的距离计算优化

    我想知道是否有任何方法可以优化下面的距离计算过程 我在下面留下了一个小例子 但是我正在处理一个超过 6000 行的电子表格 计算变量 d 需要相当长的时间 可以通过某种方式调整它以获得相同的结果 但以优化的方式 library rdist
  • 如何在 C# 中将对象类型传递给类型参数

    我有一个具有类型参数的函数 public static object SetValuesToObject Type tClass DataRow dr return object 我不知道如何传递一个类作为该函数的参数 在这里我想传递参数类
  • Rails 5 中的 Webpacker 需要很长时间才能编译那么多文件。我怎样才能看到它在做什么?

    Webpacker Compiling 编译我对 javascript 文件的任何更改都需要几秒钟 6 2 秒 这确实减慢了我的 JS 开发速度 有没有办法查看 Rails 中的 Webpacker 正在做什么以及它大部分时间都花在哪些文件
  • 怎么修 '。'不是内部或外部命令错误

    我遵循了几个链接来尝试解决这个问题 例如link1 http community spiceworks com how to show 36697 how to fix not recognized as an internal or ex
  • C# 保存大图像

    我在尝试使用 C 保存巨大图像 我指的是超过 1 GB 时遇到了困难 基本上 我尝试分部分执行此操作 我有大约 200 个位图源 我需要一种方法在将它们编码为 png 文件之前或之后将它们组合起来 我知道这将需要大量的 RAM 除非我以某种
  • 观察非 ember 全局变量

    我想要一个计算属性来观察非 ember 全局 localStorage 中的特定键 这可能吗 以下似乎并没有削减它 someProperty function some functionality property localStorage
  • 有没有办法忽略文本文件中某些行的读取?

    我正在尝试读取 C 应用程序中的文本文件 但我不想读取前两行或最后一行 文件中有 8 行 所以实际上我只想读取第 3 4 5 6 和 7 行 有什么办法可以做到这一点吗 示例文件 USE Shelley s Other Database C
  • 膨胀类 CollapsingToolbarLayout 时出错

    我的 CollapsingToolbarLayout 由于错误膨胀类 android support design widget CollapsingToolbarLayout 而崩溃 我上周末更新了android studio 更新之前
  • 如何删除firebase中具有指定标题的特定记录

    我在 Web 应用程序中使用 Firebase 数据库 并且有这样的数据 如何删除标题中包含 Apple 的整个记录 图中标记 我写了下面的代码 但它不起作用 请帮助 var abc firebase database ref fireba
  • 如何使用 Selenium Server 2.20 获取执行服务器名称或地址

    使用 Selenium Server 时 记录实际执行 selenium 脚本的计算机的名称非常有用 是否可以获得该信息 我正在使用 C 绑定 但用任何语言回答都可以 我们应该知道 Selenium 服务器在哪里运行 这是Java代码 我们
  • Android 应用内结算可用产品列表

    是否可以通过某种方式从 Play 商店获取所有可用产品的列表 我想要做的是获取所有可用的项目 然后将它们显示在 ListView 中 每当有人点击 ListView 时 就会在 Google Play 商店中打开正确的项目 那可能吗 如果是
  • 仅当其中一个流发生更改时,combineLatest 才会发出

    我有一个具有频繁值的流和一个具有较慢值的流 我想将它们组合起来 但仅当较慢的发出时才发出一个值 所以combineLatest不起作用 就像这样 a1 a2 b1 a2 b1 a3 a4 a5 b2 a5 b2 目前我正在这样做 有没有更干
  • 针对大型文件夹的并行 tar 和分割

    我有一个非常大的文件夹 我想对其进行 gzip 压缩并拆分以进行存档 bin bash dir 1 name 2 size 32000m tar czf dev stdout dir split a 5 d b size name 有没有办