[问题] shellscript tar问题

楼主: raynoz (Rayoz)   2021-07-31 07:54:33
最近公司丢一个写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解开后只会解一个出来...
想问问看是哪里出问题
另外想问问如何打包但不包含路径
先感谢大家了
作者: relaughter (好好笑)   2021-07-31 10:57:00
参考看看 https://hackmd.io/Aw1XGBLVSO21WVrZ2aEBtQ用小脚本应该比使用很多不熟参数简单 :)
作者: kdjf (我抓得到什么呢?)   2021-07-31 11:51:00
你第二个资料夹的内容就直接盖过第一个了啊第一次用-c,第二个要用-A
作者: newversion (海纳百川)   2021-07-31 12:36:00
1楼的作法, 若argument数量过多,会爆掉建议先用 -c 建立个纯 .tar 档再用 --append , 最后再 gzip
作者: rickieyang (Rickie Yang)   2021-07-31 13:32:00
不懂这样的需求为什么会想要用 find?
作者: goldie (阿良)   2021-07-31 15:25:00
这路径复杂度应该还用不到 find 命令直接用 bash shell glob pattern 应该是最简单的cd /home/ray/photo && tar -czvf \../photo2/202107.tar.gz 202107*/还有 find 动作是递回的,没指定 -mindepth 跟 -maxdepth的话,你可能会找到不是你要的深层匹配的子目录。
楼主: raynoz (Rayoz)   2021-07-31 23:44:00
不好意思今天才有空上来看 超感谢大家!!
作者: relaughter (好好笑)   2021-07-31 23:51:00
推一下 goldie 解法,我是 follow 原 po 指令修改goldie 的解法应该才是最简单的

Links booklink

Contact Us: admin [ a t ] ucptt.com