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

2021-08-19 03:59:15 +08:00
 shiji
假设磁盘只有 100 G, 有一个巨大的 TXT/Log 文件占了 95%的磁盘容量.

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

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

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

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

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

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

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

© 2021 V2EX