有趣的tar, -cfj 和 -cjf..

evy@evy-pc /r/m/e/4E3922E94E5164D5> tar -cfj  --exclude=a/feie a.tar.bz2 a
evy@evy-pc /r/m/e/4E3922E94E5164D5> tar -cjf  --exclude=a/feie a.tar.bz2 a
tar (child): --exclude=a/feie:无法 open: 没有那个文件或目录
tar (child): Error is not recoverable: exiting now
tar: --exclude=a/feie:无法 write: 断开的管道
tar: Child returned status 2
tar: Error is not recoverable: exiting now

有趣的tar, -cfj 和 -cjf…,我讨厌tar

vy@evy-pc /r/m/e/4E3922E94E5164D5> tar -cfj  --exclude=a/feie a.tar.bz2 a
evy@evy-pc /r/m/e/4E3922E94E5164D5> ls
a/  a.tar.bz2*  evy.tar.bz2*  j*

居然生成了j

1 个赞

- –请问他们有什么区别?

evy@evy-pc /r/m/e/4E3922E94E5164D5> 
tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found  –exclude=/home/backup.tgz –exclude=/mnt  –exclude=/sys  -exclude=/run /
tar: 无效选项 -- "e"
请用“tar --help”或“tar --usage”获得更多信息。
evy@evy-pc /r/m/e/4E3922E94E5164D5> 
evy@evy-pc /r/m/e/4E3922E94E5164D5> 



tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found  –exclude=/home/backup.tgz –exclude=/mnt  –exclude=/sys  –exclude=/run /
tar: –exclude=/proc:无法 stat: 没有那个文件或目录
tar: –exclude=/lost+found:无法 stat: 没有那个文件或目录
tar: –exclude=/home/backup.tgz:无法 stat: 没有那个文件或目录
tar: –exclude=/mnt:无法 stat: 没有那个文件或目录
tar: –exclude=/sys:无法 stat: 没有那个文件或目录
tar: –exclude=/run:无法 stat: 没有那个文件或目录
tar: 从成员名中删除开头的“/”
/
/home/
/home/evy/
/home/evy/.cgdb/
/home/evy/.cgdb/readline_history.txt
tar: 从硬连接目标中删除开头的“/”

眼睛不行了。。 :relieved:

后来。。。 --和– 是等价的。

首先,请 man tar

其次 -f--file 后面需要接 file

另外可以 tar cjf x.tar 不需要 - 来着(

顺便再说下,由于 tar 是单核的,推荐 tar 后使用 xz -T0.

2 个赞

后来不是按顺序的也行。。。

Heisenbug 当你试图观察它的时候就突然消失或者改变行为特征的 bug。

http://www.yinwang.org/blog-cn/2013/04/15/terminology

不加-就正常了,为什么我在网上看的都有-,

「跑题了]

我一般这么 tar :

   lfs setstripe -c -1 $name.tar.gz; 
   tar cf - $name | pigz -9 -p 24 > $name.tar.gz ; 
   echo "Tar return = ${PIPESTATUS[0]}";

[evy-pc 4E3922E94E5164D5]# bash backup.sh tar: 无法识别的选项"–exclude/home" 请用“tar --help”或“tar --usage”获得更多信息

这什么啊? --exclude 不是 -exclude

我把–复制过就是–