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

问一下技术性蛋疼问题,关于linux打包。

  •  
  •   vking · 2012-10-11 17:01:21 +08:00 · 2681 次点击
    这是一个创建于 4430 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假如当前目录下有100个文件夹,这些文件夹的大小从1MB-10GM不等,怎么才能把低于1G的所有文件夹打包在一起?
    只能通过命令行。
    10 条回复    1970-01-01 08:00:00 +08:00
    flylee2011
        1
    flylee2011  
       2012-10-11 17:01:51 +08:00
    写个shell不就行了。。
    vking
        2
    vking  
    OP
       2012-10-11 17:04:36 +08:00
    @flylee2011 不会shell,求指点。
    flylee2011
        3
    flylee2011  
       2012-10-11 17:07:26 +08:00
    @vking 就是写一段脚本程序,遍历所有的文件夹,把大小小于1G的文件夹打包就好了吧。
    具体 shell 看语法学吧。。这也不好说
    vking
        4
    vking  
    OP
       2012-10-11 18:05:25 +08:00
    @flylee2011 现学现卖.我直接用的管道.如需纰漏,请指出.这里选择的是大于等于100MB的文件夹.
    du -sk * | awk '$1>=102400' | sort -nr | awk '{print $2}' | xargs tar cvzf back.tar.gz
    ratazzi
        5
    ratazzi  
       2012-10-11 18:11:26 +08:00   ❤️ 1
    find dir -size -1G | xargs tar rvf filename.tar
    vking
        6
    vking  
    OP
       2012-10-11 18:12:56 +08:00
    @ratazzi 真相只有一个..........
    已感谢.
    cabbala
        7
    cabbala  
       2012-10-11 18:13:25 +08:00
    @vking 第一个awk 少了{},然后其实也不需要sort。。

    du -sk * | awk '{if($1>=102400){print $2}}' | xargs tar cvzf back.tar.gz
    gavingeng
        8
    gavingeng  
       2012-10-11 18:26:54 +08:00
    find -type d -size -1G | xargs tar -zcvf file.tar.gz
    vking
        9
    vking  
    OP
       2012-10-11 18:47:25 +08:00
    @cabbala sort忘记删了。的确不需要。
    没有{}也行。
    用awk显得更灵活。
    cabbala
        10
    cabbala  
       2012-10-11 18:51:53 +08:00
    @vking 这得看awk版本,有些版本的awk是不允许没有{}的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3134 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:30 · PVG 21:30 · LAX 05:30 · JFK 08:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.