免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14844 | 回复: 14

如何用shell脚本实现 压缩Linux下某一目录下的所有文件夹 [复制链接]

论坛徽章:
0
发表于 2008-07-05 09:22 |显示全部楼层
小弟最近遇到了这样的一个面试题目,大家一起来思考一下吧。谢谢。

论坛徽章:
0
发表于 2008-07-05 09:31 |显示全部楼层
for i in path
do
      tar cf $i.tar $i
done

或者find

论坛徽章:
0
发表于 2008-07-05 09:55 |显示全部楼层
压到一个文件里面?
tar czf filename.tar.gz *
tar cjf filename.tar.bz2 *
其实我不太喜欢压缩(gz、bz2、7z、zip等),一般情况下打包tar就足够了,除了日志文件,没有什么好压缩的。
如果要求不含文件的话可以
find . -type d -maxdepth 1 2>/dev/null|sed '/^\.$/d'|xargs tar czf filename.tar.gz

论坛徽章:
0
发表于 2008-07-05 10:14 |显示全部楼层
原帖由 无声无息 于 2008-7-5 09:31 发表
for i in path
do
      tar cf $i.tar $i
done

或者find




路径那里我应该怎么写?
我写了个
for i in '/home/nn'
do
mv $i $i.c
done
本意是想跟改目录下所有文件名加个.c但是执行的时候,提示'/home/nn'是个目录,具体path那里应该如何写呢,谢指点

论坛徽章:
0
发表于 2008-07-05 10:45 |显示全部楼层
for i in /home/nn/*

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
发表于 2008-07-05 11:10 |显示全部楼层
原帖由 无声无息 于 2008-7-5 09:31 发表
for i in path
do
      tar cf $i.tar $i
done

或者find

这样中标的不只文件夹吧?

论坛徽章:
0
发表于 2008-07-05 11:26 |显示全部楼层
其实楼主应该说清楚,我一开始也没有想到当前目录下的文件要不要的问题。LZ不会是只要目录,不要文件吧?

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
发表于 2008-07-05 11:38 |显示全部楼层
原帖由 xuchaokyle 于 2008-7-5 09:22 发表
小弟最近遇到了这样的一个面试题目,大家一起来思考一下吧。谢谢。


  1. #!/bin/bash

  2. for name in `find .`; do
  3.         if [ -d $name ]; then
  4.                 tar jcvf $name.tar.bz2 $name
  5.         fi
  6. done
复制代码


这样就只有目录中标了。

论坛徽章:
0
发表于 2008-07-05 11:49 |显示全部楼层
LZ没有说清楚具体信息,莫非是让我们玩猜猜看?

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
发表于 2008-07-05 12:03 |显示全部楼层
原帖由 walkerxk 于 2008-7-5 11:49 发表
LZ没有说清楚具体信息,莫非是让我们玩猜猜看?

很淫秽的写在标题里面了-__-
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP