你能解决掉含100000个文件的文件夹,那你就厉害了!

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
头像
NewUserFF
帖子: 413
注册时间: 2010-11-19 22:55

你能解决掉含100000个文件的文件夹,那你就厉害了!

#1

帖子 NewUserFF » 2011-02-04 14:34

-------------------------------这就是我的问题--------------------------------------
怎么才能把数万个文件压缩为一个zip文件?

------------------------------问题详述-----------------------------------
小弟目前有5个文件夹:a,b,c,d,e,其中各含wav文件数万个,小弟现在想把这几个文件夹里的所有文件都压缩为一个zip文件:new.zip,而且这个new.zip压缩包内不含任何文件夹,也就是说,这个压缩包内直接包含这数万个文件wav文件,没有任何文件夹,明白了吧?
------------------------------我的失败的解决方案-----------------------------
小弟开始解决这个问题了:首先进入含a,b,c,d,e的文件夹,直接执行:
zip -j new.zip *
发生错误:Nothing to do !

看来出问题了。也许zip解决不了这么多文件吧,那我换个办法:
我先建立一个new文件夹,然后把所有的文件都移入这个new文件夹中,然后再压缩一下这个new文件夹试试,于是我就开始了:
mkdir new(成功!)然后cp a/* new
报错:参数过长,看来cp也挂了

我决定转到gnome里去解决!
于是我进入图形界面,打开文件夹,打开a文件夹,然后无响应......看来gnome没遇到这么强大的对手。。。。。。。。

-------------------------------重申我的问题--------------------------------------
怎么才能把数万个文件压缩为一个zip文件?

最后祝大家新年快乐!
上次由 NewUserFF 在 2011-02-04 14:39,总共编辑 2 次。
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#2

帖子 xhy » 2011-02-04 14:37

*显然是不行的,bash展开*的时候,不能处理这么多文件的情况,
建议cd到这个目录的上一级,然后tar打包得到一个大文件,再压缩那个文件
目前负债150多万
头像
NewUserFF
帖子: 413
注册时间: 2010-11-19 22:55

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#3

帖子 NewUserFF » 2011-02-04 14:43

楼上的大哥,你好,我想要一个直接包含数万个文件的文件夹,而不是把一个tar压缩,因为有一个软件就是需要这样的格式,经过tar打包后就不好用了
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#4

帖子 xhy » 2011-02-04 15:13

man zip阿,可以这样做

代码: 全选

find . -name "*.[ch]" -print | zip source -@
目前负债150多万
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#5

帖子 astolia » 2011-02-04 15:28

这有什么难的,zip本身默认的就是追加方式啊。
也就是说不是一次性将所有文件都放到命令行里,而是一个一个的添加
将abcde单独放入另外一个文件夹里,再cd到那个文件夹,执行

代码: 全选

find -type f -exec zip -j a.zip {} \;
头像
NewUserFF
帖子: 413
注册时间: 2010-11-19 22:55

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#6

帖子 NewUserFF » 2011-02-04 17:22

xhy 写了:man zip阿,可以这样做

代码: 全选

find . -name "*.[ch]" -print | zip source -@
太感谢了!这条命令太牛逼了!充分感受到了命令的强大!
头像
weatny
帖子: 67
注册时间: 2010-12-26 17:32
来自: 火星
联系:

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#7

帖子 weatny » 2011-02-04 22:15

不知所云 :em06
看来还是要好好学习一番了
正在逐步向Linux过渡,大家多多帮助

Ubuntu 10.04 LTS 使用中
头像
速腾1994
论坛版主
帖子: 17379
注册时间: 2008-11-01 20:43
系统: Arch+gnome

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#8

帖子 速腾1994 » 2011-02-07 20:47

不知所云 :em06
头像
taelle
帖子: 19
注册时间: 2010-03-05 20:00

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#9

帖子 taelle » 2011-02-12 3:27

学习了 :em11
做你所爱,爱你所做.
mervyn807
帖子: 26
注册时间: 2010-08-09 14:32

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#10

帖子 mervyn807 » 2011-02-12 9:39

不知所云
头像
SexMan
帖子: 141
注册时间: 2010-12-11 19:25

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#11

帖子 SexMan » 2011-02-12 10:14

这么多蛋疼寂莫的人在研究一个实际使用中不可能存在的问题.  
yjqg6666
帖子: 77
注册时间: 2008-12-31 17:45

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#12

帖子 yjqg6666 » 2011-02-12 12:00

man了下zip -@参数的解释如下
-@
--names-stdin
Take the list of input files from standard input. Only one file‐
name per line.
就是从标准输入中读取文件名 一行一个文件
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#13

帖子 lainme » 2011-02-12 12:33

SexMan 写了:这么多蛋疼寂莫的人在研究一个实际使用中不可能存在的问题.  
事物是有共通性的

find很实用。5L给出的是find经常被使用的一个方法。找出符合某种条件的文件,然后执行某一命令
柳青藤
帖子: 46
注册时间: 2009-04-09 13:26

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#14

帖子 柳青藤 » 2011-02-14 13:43

mark
灼灼岁序,恰似晨露,今朝欢娱,明日......
头像
秋景雨
帖子: 137
注册时间: 2011-01-31 12:55
联系:

Re: 你能解决掉含100000个文件的文件夹,那你就厉害了!

#15

帖子 秋景雨 » 2011-03-19 15:56

太强了,正是我需要的。 :em11
回复