[問題] 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