看板 Linux 關於我們 聯絡資訊
最近公司丟一個寫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
relaughter: 參考看看 https://hackmd.io/Aw1XGBLVSO21WVrZ2aEBtQ 07/31 10:57
relaughter: 用小腳本應該比使用很多不熟參數簡單 :) 07/31 10:59
kdjf: 你第二個資料夾的內容就直接蓋過第一個了啊 07/31 11:51
kdjf: 第一次用-c,第二個要用-A 07/31 11:52
newversion: 1樓的作法, 若argument數量過多,會爆掉 07/31 12:36
newversion: 建議先用 -c 建立個純 .tar 檔 07/31 12:38
newversion: 再用 --append , 最後再 gzip 07/31 12:40
rickieyang: 不懂這樣的需求為什麼會想要用 find? 07/31 13:32
goldie: 這路徑複雜度應該還用不到 find 命令 07/31 15:25
goldie: 直接用 bash shell glob pattern 應該是最簡單的 07/31 15:25
goldie: cd /home/ray/photo && tar -czvf \ 07/31 15:25
goldie: ../photo2/202107.tar.gz 202107*/ 07/31 15:25
goldie: 還有 find 動作是遞迴的,沒指定 -mindepth 跟 -maxdepth 07/31 15:25
goldie: 的話,你可能會找到不是你要的深層匹配的子目錄。 07/31 15:25
raynoz: 不好意思今天才有空上來看 超感謝大家!! 07/31 23:44
relaughter: 推一下 goldie 解法,我是 follow 原 po 指令修改 07/31 23:51
relaughter: goldie 的解法應該才是最簡單的 07/31 23:52