1
mikeguan 2019-03-25 20:40:40 +08:00 via Android
花式使用命令还是 man 看下比较好
一般-f 后面接要操作的文件 -C 是指定目录 |
2
GTim 2019-03-25 20:50:01 +08:00
如楼上说说,那个,`tar --help` 就有结果啦
-C <dir> Change to <dir> before processing remaining files |
3
billlee 2019-03-25 21:28:47 +08:00
tar -zcvf -C /home test/test.*
|
4
V2Yamato OP @mikeguan
@GTim @billlee root@DR02:/tmp# ls -l /home/root/test/ -rw-r--r-- 1 root root 0 Jan 1 00:09 1 -rw-r--r-- 1 root root 0 Jan 1 00:10 1.1 -rw-r--r-- 1 root root 0 Jan 1 00:10 1.2 -rw-r--r-- 1 root root 0 Jan 1 00:10 1.3 -rw-r--r-- 1 root root 0 Jan 1 00:10 1.4 -rw-r--r-- 1 root root 0 Jan 1 00:09 2 -rw-r--r-- 1 root root 0 Jan 1 00:09 3 -rw-r--r-- 1 root root 0 Jan 1 00:09 4 root@DR02:/tmp# tar -zcvf test.tar.gz -C /home/root/ test/1.* tar: test/1.*: No such file or directory tar: error exit delayed from previous errors 感觉像是在解析语义的时候出现了问题,如果在压缩时不使用-C: root@DR02:/tmp# tar -zcvf test.tar.gz /home/root/test/1.* tar: removing leading '/' from member names home/root/test/1.1 home/root/test/1.2 home/root/test/1.3 home/root/test/1.4 虽然在压缩的时候我没见过有人用-C,但是还是很奇怪! |
5
mikeguan 2019-03-26 21:34:59 +08:00 via Android
试了下,感觉应该是*没有正常被展开,直接查找 1.*这个文件了,查找不到文件报错
后面指定具体文件名是可以打包的 |
6
billlee 2019-03-26 21:43:25 +08:00
@V2Yamato #4 其实问题的原因就是通配符补全是由 shell 做的,不能理解 tar 的 -C 参数,只会在 working directory 下找
|
7
raysonx 2019-03-27 16:26:36 +08:00
楼主的用法是错的。-f 参数后面应该直接跟压缩文件的名字,比如:
tar -zcvf my-archive.tar.gz -C /home /test/test.* 通配符展开是 shell 做的,tar 看到的已经是展开后的文件名列表了。当不加-C 时,通配符展开后的第一个文件成了-f 的参数,剩下的文件被视为要打包的文件列表。 |