作者raynoz (Raynoz)
看板Linux
标题[问题] shellscript tar问题
时间Sat Jul 31 07:54:33 2021
最近公司丢一个写Script的工作给我这个完全没碰过的人....
是这样的...
我在/home/ray/photo路径下放了3个资料夹,分别是20210811、20210701跟20210715
而我想要把20210701跟20210715两个资料夹打包放到/home/ray/photo2并命名为202107
我的写法是
find /home/ray/photo -type d -name "202107*" -exec tar -czvPf /home/ray/photo2/202107.tar.gz "{}" \;
打包时会显示两个资料夹都有包进去
但是用tar -zxvf解开後只会解一个出来...
想问问看是哪里出问题
另外想问问如何打包但不包含路径
先感谢大家了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.75.6.134 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1627689275.A.D01.html
2F:→ relaughter: 用小脚本应该比使用很多不熟参数简单 :) 07/31 10:59
3F:推 kdjf: 你第二个资料夹的内容就直接盖过第一个了啊 07/31 11:51
4F:→ kdjf: 第一次用-c,第二个要用-A 07/31 11:52
5F:→ newversion: 1楼的作法, 若argument数量过多,会爆掉 07/31 12:36
6F:→ newversion: 建议先用 -c 建立个纯 .tar 档 07/31 12:38
7F:→ newversion: 再用 --append , 最後再 gzip 07/31 12:40
8F:推 rickieyang: 不懂这样的需求为什麽会想要用 find? 07/31 13:32
9F:推 goldie: 这路径复杂度应该还用不到 find 命令 07/31 15:25
10F:→ goldie: 直接用 bash shell glob pattern 应该是最简单的 07/31 15:25
11F:→ goldie: cd /home/ray/photo && tar -czvf \ 07/31 15:25
12F:→ goldie: ../photo2/202107.tar.gz 202107*/ 07/31 15:25
13F:→ goldie: 还有 find 动作是递回的,没指定 -mindepth 跟 -maxdepth 07/31 15:25
14F:→ goldie: 的话,你可能会找到不是你要的深层匹配的子目录。 07/31 15:25
15F:→ raynoz: 不好意思今天才有空上来看 超感谢大家!! 07/31 23:44
16F:推 relaughter: 推一下 goldie 解法,我是 follow 原 po 指令修改 07/31 23:51
17F:→ relaughter: goldie 的解法应该才是最简单的 07/31 23:52