如何cp ; tar ; mv ;时,把隐藏文件一起带上

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

如何cp ; tar ; mv ;时,把隐藏文件一起带上

#1

帖子 lwaterl » 2012-02-14 13:14

如何cp ; tar ; mv ;时,把隐藏文件一起带上
要是知道原理,请把原理也简单说下

请把举例的目录说出来,如/home/water/abc
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 如何cp ; tar ; mv ;时,把隐藏文件一起带上

#2

帖子 BigSnake.NET » 2012-02-14 13:34

本来就带上……
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何cp ; tar ; mv ;时,把隐藏文件一起带上

#3

帖子 eexpress » 2012-02-14 14:36

使用.*就带上了。
● 鸣学
头像
lwaterl
帖子: 379
注册时间: 2007-08-24 17:46

Re: 如何cp ; tar ; mv ;时,把隐藏文件一起带上

#4

帖子 lwaterl » 2012-02-14 14:57

嗯,是我用的方法不对

不能用/*
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 如何cp ; tar ; mv ;时,把隐藏文件一起带上

#5

帖子 自由建客 » 2012-02-15 0:00

cp 可用一个点表示所有, tar、 mv 不行。
http://forum.ubuntu.org.cn/viewtopic.php?f=86&t=297482
头像
lwaterl
帖子: 379
注册时间: 2007-08-24 17:46

Re: 如何cp ; tar ; mv ;时,把隐藏文件一起带上

#6

帖子 lwaterl » 2012-02-15 15:45

自由建客 写了:cp 可用一个点表示所有, tar、 mv 不行。
http://forum.ubuntu.org.cn/viewtopic.php?f=86&t=297482
谢谢,网上找的类似你12楼的正则有好多个版本,看到晕。于是过来问下有没有简单方法。(估计要问正则的话,回答一定是让我看正则之道去 :em04
头像
lwaterl
帖子: 379
注册时间: 2007-08-24 17:46

Re: 如何cp ; tar ; mv ;时,把隐藏文件一起带上

#7

帖子 lwaterl » 2012-02-20 17:44

以/abc为例,若直接把/abc这个目录直接打包了,那自动打包隐藏文件;
若打包的是/abc/目录里的所有文件,就不自动打包隐藏文件
学习正则表达式是王道啊,批处理文件那叫爽,虽然我还没学 :em06

代码: 全选

# tar -zcvf /tmp/file.tar.gz .[!.]*    ---------------- 只打包隐藏(这一层),即:隐藏目录里的普通文件还会被打包,且普通目录下的隐藏文件不会被打包
# tar -zcvf file.tar.gz * .[!.]*          ---------------- 全打包,
# tar -zcvf file.tar.gz .            ----------------------好像也行,但会有个错误(?)提示
$ cd abc
$ ls -a
. .. file1 .file2 x1 .x2
$ ls -a x1
. .. file5 .file6
$ ls -a .x2
. .. file3 .file4
$ tar -cvf a.gz .[!.]*
.file2
.x2/
.x2/file3 <<<<<<<<<<<<<<<<<<<<<<<<<<<<< file3 也给打包了 ,而且 x1 文件夹被忽略了
.x2/.file4
$ tar -cvf b.gz * .[!.]*
a.gz
file1
x1/
x1/file5
x1/.file6
.file2
.x2/
.x2/file3
.x2/.file4
$ tar -cvf c.gz . <<<< 给点 加了个粗,像方块了 囧……
./
./b.gz
./x1/
./x1/file5
./x1/.file6
./.x2/
./.x2/file3
./.x2/.file4
tar: ./c.gz: 文件是归档文件;未输出 <<<<<<<<<<<< 用点(.)的话就会出现这个提示
./file1
./.file2
./a.gz
$ ls -a
. .. a.gz b.gz c.gz file1 .file2 x1 .x2
$ tar -tf a.gz
.file2
.x2/
.x2/file3
.x2/.file4
$ tar -tf b.gz
a.gz
file1
x1/
x1/file5
x1/.file6
.file2
.x2/
.x2/file3
.x2/.file4
$ tar -tf c.gz
./
./b.gz
./x1/
./x1/file5
./x1/.file6
./.x2/
./.x2/file3
./.x2/.file4
./file1
./.file2
./a.gz
回复