[問題] shellscript tar問題

看板Linux作者 (Raynoz)時間3年前 (2021/07/31 07:54), 編輯推噓5(5012)
留言17則, 6人參與, 3年前最新討論串1/3 (看更多)
最近公司丟一個寫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://www.ptt.cc/bbs/Linux/M.1627689275.A.D01.html

07/31 10:57, 3年前 , 1F
07/31 10:57, 1F

07/31 10:59, 3年前 , 2F
用小腳本應該比使用很多不熟參數簡單 :)
07/31 10:59, 2F

07/31 11:51, 3年前 , 3F
你第二個資料夾的內容就直接蓋過第一個了啊
07/31 11:51, 3F

07/31 11:52, 3年前 , 4F
第一次用-c,第二個要用-A
07/31 11:52, 4F

07/31 12:36, 3年前 , 5F
1樓的作法, 若argument數量過多,會爆掉
07/31 12:36, 5F

07/31 12:38, 3年前 , 6F
建議先用 -c 建立個純 .tar 檔
07/31 12:38, 6F

07/31 12:40, 3年前 , 7F
再用 --append , 最後再 gzip
07/31 12:40, 7F

07/31 13:32, 3年前 , 8F
不懂這樣的需求為什麼會想要用 find?
07/31 13:32, 8F

07/31 15:25, 3年前 , 9F
這路徑複雜度應該還用不到 find 命令
07/31 15:25, 9F

07/31 15:25, 3年前 , 10F
直接用 bash shell glob pattern 應該是最簡單的
07/31 15:25, 10F

07/31 15:25, 3年前 , 11F
cd /home/ray/photo && tar -czvf \
07/31 15:25, 11F

07/31 15:25, 3年前 , 12F
../photo2/202107.tar.gz 202107*/
07/31 15:25, 12F

07/31 15:25, 3年前 , 13F
還有 find 動作是遞迴的,沒指定 -mindepth 跟 -maxdepth
07/31 15:25, 13F

07/31 15:25, 3年前 , 14F
的話,你可能會找到不是你要的深層匹配的子目錄。
07/31 15:25, 14F

07/31 23:44, 3年前 , 15F
不好意思今天才有空上來看 超感謝大家!!
07/31 23:44, 15F

07/31 23:51, 3年前 , 16F
推一下 goldie 解法,我是 follow 原 po 指令修改
07/31 23:51, 16F

07/31 23:52, 3年前 , 17F
goldie 的解法應該才是最簡單的
07/31 23:52, 17F
文章代碼(AID): #1X194xq1 (Linux)
討論串 (同標題文章)
文章代碼(AID): #1X194xq1 (Linux)