shiji
V2EX  ›  问与答

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

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

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