shiji
V2EX  ›  问与答

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

  •  
  •   shiji · Aug 19, 2021 · 1993 views
    This topic created in 1787 days ago, the information mentioned may be changed or developed.
    假设磁盘只有 100 G, 有一个巨大的 TXT/Log 文件占了 95%的磁盘容量.

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

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

    复制最后 4% -> trunc 最后 4% -> 复制最后 4%-> trunc....
    最后应该是 20 多个文件+5%的剩余空间。再按需合并就好了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2831 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 14:44 · PVG 22:44 · LAX 07:44 · JFK 10:44
    ♥ Do have faith in what you're doing.