Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算linux中tgz文件子目录中的文件数_Linux_Count_Tar_Subdirectory - Fatal编程技术网

计算linux中tgz文件子目录中的文件数

计算linux中tgz文件子目录中的文件数,linux,count,tar,subdirectory,Linux,Count,Tar,Subdirectory,我有一个带有多个子目录的tgz文件。如何计算每个子目录中的文件数而不更正文件?我在Amazon EC2上使用Linux CentOS 例如,我有一个tgz文件,它的目录是dialogs/[0-9]from。具体来说,我正在查看这个tgz文件: 这个tgz文件有对话作为主目录,然后有许多从1到999(?)的子目录。我希望能够计算所有子目录中的文件数。例如,dialogs/3有346108个tsv文件对话/4有269023个tsv文件。我希望能够看到所有子目录中的文件数。是否有linux命令可以在不

我有一个带有多个子目录的tgz文件。如何计算每个子目录中的文件数而不更正文件?我在Amazon EC2上使用Linux CentOS

例如,我有一个tgz文件,它的目录是
dialogs/[0-9]
from。具体来说,我正在查看这个tgz文件:

这个tgz文件有
对话
作为主目录,然后有许多从1到999(?)的子目录。我希望能够计算所有子目录中的文件数。例如,
dialogs/3
有346108个tsv文件<代码>对话/4有269023个tsv文件。我希望能够看到所有子目录中的文件数。是否有linux命令可以在不解除文件错误的情况下执行此操作

我希望输出是子目录的名称,然后是子目录名称旁边包含的文件数。比如:

对话框/3-346108

对话框/4-269023

对话框/5-#####


等等。它不一定要精确,但这就是想法。

您可以尝试以下命令:

tar tzf ubuntu_dialogs.tgz | grep dialogs | grep tsv | xargs-i dirname{}| uniq-c

我没有下载您的550MB文件,而是尝试了以下方法来统计我的一个归档文件中某个子目录中的jar文件:

tar tzf NetLogo-6.0.1-64.tgz | grep app/extensions | grep jar | xargs-i dirname{}uniq-c

我得到

  2 NetLogo 6.0.1/app/extensions/arduino
  1 NetLogo 6.0.1/app/extensions/array
  1 NetLogo 6.0.1/app/extensions/bitmap
  1 NetLogo 6.0.1/app/extensions/cf
  2 NetLogo 6.0.1/app/extensions/csv
  8 NetLogo 6.0.1/app/extensions/gis
  4 NetLogo 6.0.1/app/extensions/gogo
  6 NetLogo 6.0.1/app/extensions/ls
  2 NetLogo 6.0.1/app/extensions/matrix
 12 NetLogo 6.0.1/app/extensions/nw
  1 NetLogo 6.0.1/app/extensions/palette
  1 NetLogo 6.0.1/app/extensions/profiler
  2 NetLogo 6.0.1/app/extensions/r
  1 NetLogo 6.0.1/app/extensions/rnd
  1 NetLogo 6.0.1/app/extensions/sample
  1 NetLogo 6.0.1/app/extensions/sample-scala
  1 NetLogo 6.0.1/app/extensions/sound
  1 NetLogo 6.0.1/app/extensions/table
  6 NetLogo 6.0.1/app/extensions/vid
  3 NetLogo 6.0.1/app/extensions/view2.5d
(罐子的数量在第一列)

测试:

然后输出为:

6 a
2 a/c
3 b

你期望什么样的产出?你可以发布大概的样本输出,我不知道为什么,但这并没有给我所有子目录的所有计数。它只给我一些子目录的计数。但是knb的解决方案有效,所以我没事。不过,谢谢你!
mkdir -p a/c
touch a/{1,2,3,4,5,6}
touch a/c/{1,2}
mkdir b
touch b/{1,2,3}
tar cvfz ex.tgz a b
6 a
2 a/c
3 b