将所有文件(位于不同文件夹中)放在一个文件中



我尝试使用 for 循环做特定的事情,我需要你的帮助。

我有不同的文件夹,它们有不同的名称,例如GCF_A1GCF_C4GCF_R3...等等。

每个文件夹都有很多文件具有不同的名称,例如GCF444444GCF00001RRGCF1000FF...等等。

我想做的是将所有GCF4444文件(gz格式和不同文件夹中)放在一个文件中。

例如,如果我每个文件夹中有 5 个文件夹,则我想复制一个文件,那么我最终希望有一个文件包含不同文件夹中五个文件的所有内容。

这可能看起来像这样:

find <base_path_of_your_zips> -type f -name "*.gz" -exec cat {} pathtosinglezippedfile.gz ;

我不确定你到底在问什么,但这能回答吗?

find /path/to/parent/dir -name GCF4444 -print0 |xargs -0 cat > GCF4444.gz

这可能没有任何意义,但这个问题并不是很清楚你想要什么。这只是盲目地连接每个文件,其整个名称按任何顺序GCF4444。(gzip 功能健壮,单个 gzip 文件可以毫无问题地连接在一起。额外的标头的开销成本非常小,您可以通过将结尾更改为|xargs -0 zcat |gzip -9 > GCF4444.gz来删除)

否则,也许您希望保留层次结构:

cd /path/to/parent/dir
find . -name GCF4444 -print0 |xargs -0 tar -pcf GCF4444.tar

这将在父目录的顶层创建一个GCF4444.tar文件。它将包含嵌套目录结构中的每个GCF4444文件。我没有使用tar -z因为您说文件内容已经压缩(生成的文件可能会稍大)。

相关内容

  • 没有找到相关文章

最新更新