tar 多不同路徑檔,並移除絕對路徑 - Linux

Heather avatar
By Heather
at 2017-12-08T16:05

Table of Contents


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 的話,感覺效能會非常差…

--

不過感覺應該是個會有很多人都會遇到,會有需要的功能,
所以想上來請教,是否有好方法能夠做到呢?

感激不盡~~

--
Tags: Linux

All Comments

Susan avatar
By Susan
at 2017-12-12T04:08
用basename指令或作法二改用symlink然後用 tar -h 參數
Margaret avatar
By Margaret
at 2017-12-16T12:45
感覺做法1就可以了,切路徑也有現成的工具,不會太麻煩
Robert avatar
By Robert
at 2017-12-20T16:54
喔喔! symlink 再用 tar -h 好酷,來試試
Valerie avatar
By Valerie
at 2017-12-25T03:05
解壓縮的時候用 --one-top-level
Suhail Hany avatar
By Suhail Hany
at 2017-12-26T06:05
用的版本沒 one-top-level 選項
Linda avatar
By Linda
at 2017-12-29T06:59
還是用 方法一做掉了~ tar -rvf、basename、dirname
Eden avatar
By Eden
at 2017-12-31T18:25
tar 的 -C 可以指定多次,類似 cd 可以重複切換工作目錄
Ophelia avatar
By Ophelia
at 2018-01-02T21:02
可以嘗試 01.txt -C /tmp 02.txt -C /home/user 03.txt
Mia avatar
By Mia
at 2018-01-03T22:09
喔喔! 原來 -C 可以這樣用啊,還想說這 -C 也太不實用~
Mary avatar
By Mary
at 2018-01-05T21:07
學習了!
Victoria avatar
By Victoria
at 2018-01-10T13:27
推討論分享

spyder安裝 遇到lzh_tw 問題

Lily avatar
By Lily
at 2017-12-07T15:26
os:ubunto 17.10 Q.terminal執行spyder時報錯 (只擷取最尾端資訊) File and#34;/home/jack/anaconda3/lib/python3.6/_strptime.pyand#34;, line 31, in _getlang return loca ...

freeNX server 新增用戶無法登入~~~

Agatha avatar
By Agatha
at 2017-12-07T06:43
各位PTT 企鵝版的版友大家好~~ 我的電腦安裝CentOS 6.9 系統~~ 之前已經安裝好了 ssh freeNX 的套件...也啟動這兩種功能~~ 有設定一個帳號,可以遠端登入~~ 也可以操作~~~~ 後來我又想新增一個帳號~~~ 有先在centos 系統裡,建立一個新的用戶帳號 layout01 接著 ...

Microcode 可以降級嗎?

Dinah avatar
By Dinah
at 2017-12-06T12:57
請問一下,Microcode 可以降級嗎? 可以直接由 http://snapshot.debian.org 找舊的安裝嗎? (我的是 AMD Phenom(tm) II X2 555) 會這樣問是因為我電腦在安裝新系統後超不穩定,連帶舊的 OS 也是。 因此懷疑安裝新 debian 時更新到有問題的 Mi ...

postfix限制使用者流量

Rosalind avatar
By Rosalind
at 2017-12-05T21:28
請問有什麼有效的方法能夠限制postfix中同一個使用者在一定時間內的流量嗎? 我們系上的 mail server 是架在Cent OS 6 上,最近半年發生兩次使用者帳號被盜,大量發送垃圾信,結果server被列在黑名單上,都是到了信件寄不出去才發現,有辦法即時監控嗎? - ...

安裝14.04時發生的問題

Audriana avatar
By Audriana
at 2017-12-05T16:10
照著網路上的教學 用usb安裝 但是在選擇完install跑了一下下之後 銀幕就出現out of range 沒辦法繼續 請問各位大哥大姐 應該如何解決 - ...