[問題] tar 多不同路徑檔,並移除絕對路徑
Linux 板的棒油大家好。
在寫 script 中,取得了想要處理的檔案清單:
./01.txt
/tmp/02.txt
/home/user/03.txt
...
想要將其打包壓成 tar 檔,
不過若是直接下指令如下的話:
tar -zcvf test.tar.gz ./01.txt /tmp/02.txt /home/user/03.txt
則保存的資料夾路徑也會一起被 copy(根路徑被移除)
tar -ztvf test.tar.gz
01.txt
tmp/02.txt
home/user/03.txt
--
而希望的是能得到的結果為:
tar -ztvf test.tar.gz
01.txt
02.txt
03.txt
備分的原始 tar 完後,將之移除。
--
查網路上,多是在同一資料夾下處理,
則會用 tar 的 -C 參數切到該路徑做事。
而以此 需求來說,因要處理的檔案是散在多個不同路徑下,看來是不適用此法。
--
有想到幾個較為迂迴的做法:
做法-1:
再 parse 每個 檔案名,切出其 檔案路徑 及 檔案。
再一個個用 tar -C 去 add 每個檔案到 test.tar.gz 中。
做法-2:
把所有檔案先 copy 到一個 temp 資料夾下,tar 完後再把 temp 資料夾移除。
做法簡單,不過如果處理的檔案是好幾 GB 的話,感覺效能會非常差…
--
不過感覺應該是個會有很多人都會遇到,會有需要的功能,
所以想上來請教,是否有好方法能夠做到呢?
感激不盡~~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.127.58
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1512720344.A.522.html
※ 編輯: karasless (59.124.127.58), 12/08/2017 16:09:16
推
12/08 16:17,
6年前
, 1F
12/08 16:17, 1F
→
12/08 16:17,
6年前
, 2F
12/08 16:17, 2F
→
12/08 16:25,
6年前
, 3F
12/08 16:25, 3F
推
12/08 16:26,
6年前
, 4F
12/08 16:26, 4F
→
12/08 17:39,
6年前
, 5F
12/08 17:39, 5F
→
12/08 17:40,
6年前
, 6F
12/08 17:40, 6F
推
12/08 18:10,
6年前
, 7F
12/08 18:10, 7F
→
12/08 18:12,
6年前
, 8F
12/08 18:12, 8F
→
12/08 19:23,
6年前
, 9F
12/08 19:23, 9F
→
12/08 19:24,
6年前
, 10F
12/08 19:24, 10F
推
12/14 06:47,
6年前
, 11F
12/14 06:47, 11F