求问, Linux 下怎么切割文件?

2021 年 8 月 19 日
 shiji
假设磁盘只有 100 G, 有一个巨大的 TXT/Log 文件占了 95%的磁盘容量.

需求是在不使用另一块磁盘的情况下,把这个文件拆成 8 个小文件. 说白了就是原地拆分。

请问有什么工具、口令可以使用?
2043 次点击
所在节点    问与答
9 条回复
woctordho
2021 年 8 月 19 日
eason1874
2021 年 8 月 19 日
写一个循环,边写边截断,比如用 tail 和 truncate
ho121
2021 年 8 月 19 日
先建一个内存盘?
liuguangxuan
2021 年 8 月 19 日
Linux 下有 split 命令,不知道能不能满足楼主的需求。
shoaly
2021 年 8 月 19 日
这种占满硬盘没法读写的场景太稀有了, 别去琢磨了
临时加一个(或者 ssh 挂在一个远程的硬盘), 把日志压缩备份, 然后开一个 logrotate , 天天切割日志就完事了...
des
2021 年 8 月 19 日
原地切割是为了下载吧?
那你可以试试用 dd 加 gzip 传输回来
ch2
2021 年 8 月 19 日
添加一个 10G 的内存盘
shiji
2021 年 8 月 19 日
@ho121
@shoaly
@des
其实不是实际应用场合,是面试的那种场合。
比如按照日志某处数字排序大文件的那一类面试题。
Vegetable
2021 年 8 月 19 日
利用剩余 5%空间中的 4%

复制最后 4% -> trunc 最后 4% -> 复制最后 4%-> trunc....
最后应该是 20 多个文件+5%的剩余空间。再按需合并就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/796659

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX