Rya*_*yan 14 linux bash command-line-interface gzip
我有一个 100GB 的文件,我想分成 100 个 1GB 的文件(按换行符)
例如
split --bytes=1024M /path/to/input /path/to/output
Run Code Online (Sandbox Code Playgroud)
对于生成的 100 个文件,我想对每个文件应用 gzip/zip。
是否可以使用单个命令?
使用条件句的单行语句是最接近的。
cd /path/to/output && split --bytes=1024M /path/to/input/filename && gzip x*
Run Code Online (Sandbox Code Playgroud)
gzip仅当split成功时才运行,因为条件&&也位于cd和split确保cd成功之间。请注意,split并gzip输出到当前目录,而不是能够指定输出目录。如果需要,您可以创建目录:
mkdir -p /path/to/output && cd /path/to/output && split --bytes=1024M /path/to/input/filename && gzip x*
Run Code Online (Sandbox Code Playgroud)
将其全部重新组合在一起:
gunzip /path/to/files/x* && cat /path/to/files/x* > /path/to/dest/filename
Run Code Online (Sandbox Code Playgroud)