V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
shiji
V2EX  ›  问与答

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

  •  
  •   shiji · 2021-08-19 03:59:15 +08:00 · 1526 次点击
    这是一个创建于 1204 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设磁盘只有 100 G, 有一个巨大的 TXT/Log 文件占了 95%的磁盘容量.

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

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

    复制最后 4% -> trunc 最后 4% -> 复制最后 4%-> trunc....
    最后应该是 20 多个文件+5%的剩余空间。再按需合并就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:05 · PVG 05:05 · LAX 13:05 · JFK 16:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.