【问题标题】:Tar 100 Directories within Current Directory当前目录中的 100 个目录
【发布时间】:2016-04-11 18:50:47
【问题描述】:

我正在尝试将某个目录中的 100 个目录 tar 到一个 tar 文件中,但我不想将超过 100 个这些目录添加到该文件中。比如当前的目录结构是这样的

.../v0.0/category_name/edf/001/00000010/s01_2012_03_01

这些目录中的每一个都有不同数量的文件,我希望这些也包含在 tar 中。我想做的是使用路径的不同../00000010/.. 部分的 tar 100 目录。最后,它可能最终会创建一个具有以下结构的 tar 文件:

.../v0.0/category_name/edf/001/00000010/s01_2012_03_01/file.txt
.../v0.0/category_name/edf/001/00000010/s01_2012_03_01/file2.txt
.../v0.0/category_name/edf/001/00000010/s02_2012_03_01/file.txt
.../v0.0/category_name/edf/001/00000015/s01_2012_03_01/file.txt
.../v0.0/category_name/edf/004/00000100/s01_2012_03_01/file.txt

将路径的00000010 部分视为代表“患者”的目录。他/她目录下的所有患者文件都应包含在 tar.xml 文件中。文件中应该有 100 个不同的患者,因此如果第一个患者是 00000001,而第 100 个患者是 00000100,则结构可能如下所示。

.../v0.0/category_name/edf/001/00000001/s01_2012_03_01/file.txt
.../v0.0/category_name/edf/001/00000001/s01_2012_03_01/file2.txt
.../v0.0/category_name/edf/001/00000001/s02_2012_03_01/file.txt
.../v0.0/category_name/edf/001/00000002/s01_2012_03_01/file.txt
.../v0.0/category_name/edf/004/00000003/s01_2012_03_01/file.txt
...
.../v0.0/category_name/edf/001/00000100/s01_2012_03_01/file.txt
.../v0.0/category_name/edf/004/00000100/s02_2012_03_01/file.txt

这只是一个例子,患者目录不会以这种确切的方式编号。

【问题讨论】:

  • 你想只压缩前 100 个目录吗?
  • 您希望在该位置有 100 个 唯一 路径组件?或者在该位置最多包含 100 个具有 same 路径组件的文件?如果有超过 100 个条目,您是否关心 哪些 100 个条目?这些目录中的一些具有001 的组件并且有些具有004 的组件是否重要?
  • 对不起,我已经解决了。

标签: linux shell tar


【解决方案1】:

如果我正确理解了你的问题,你可以这样做:

find . -type d | head -100 | tar czvf dirs.tgz -T -

【讨论】:

    【解决方案2】:

    创建患者目录列表:

    find -maxdepth 1 . -type d > dirs
    

    分成 100 个块:

    split -l 100 -d dirs chunk.
    

    在每个块中存档目录:

    for f in chunk.* ; do tar -czvf ${f##chunk.}.tar.gz `cat $f` ; done
    

    您最终会得到名为 00.tar.gz01.tar.gz、...的档案,每个档案包含 100 个目录

    【讨论】:

      猜你喜欢
      • 2011-04-27
      • 1970-01-01
      • 2015-08-22
      • 2012-01-29
      • 2017-01-07
      • 2016-08-20
      • 2011-05-23
      • 2011-04-02
      • 1970-01-01
      相关资源
      最近更新 更多