看板 Linux 關於我們 聯絡資訊
請改用xargs find /home/ray/photo -type d -name "202107*" |xargs tar -czvPf /home/ray/photo2 /202107.tar.gz 你用exec的話,他是每找到一筆就會做一次tar的動作,這會把之前的壓縮覆檔蓋掉 所以你解出來的檔案應該是只有最後一筆找到的資料 xargs則是把你find找到的所有檔案做為tar的輸入,所以會一次壓縮全部找到的檔案 其實你可以試試 -exec echo {} \;跟xargs echo來比較結果就知道了 如果一定要用-exec,那加上--apend或-r的參數,讓每次壓縮時都放在原本壓縮檔的檔尾 這應該也行,但我沒試過XD ※ 引述《raynoz (Raynoz)》之銘言: : 最近公司丟一個寫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), 來自: 220.133.46.215 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1627700147.A.148.html
Bencrie: append 很慢,建議是不要啦 XD 07/31 12:09
所以才說如果一定要-exec的話XD ※ 編輯: filiaslayers (220.133.46.215 臺灣), 07/31/2021 13:02:15
raynoz: 不好意思 現在才有空上來看 超感謝!!! 07/31 23:44
Gold740716: 也可以用 find ... -exec tar -cf all.tar '{}' + 08/01 13:17