2011-11-07 26 views
22

Tôi có tệp chứa danh sách tệp tôi muốn lưu trữ bằng tar. Hãy gọi nó là mylist.txtCách tách đường dẫn trong khi lưu trữ với TAR

Nó chứa:

/path1/path2/file1.txt 
/path1/path2/file3.txt 
... 
/path1/path2/file10.txt 

Những gì tôi muốn làm là để lưu trữ tập tin này vào một tarball nhưng không bao gồm /path1/path2/. Hiện nay bằng cách làm này:

tar -cvf allfiles.tar -T mylist.txt 

giữ gìn con đường sau khi hủy lưu trữ.

tôi đã cố gắng này, nhưng sẽ không hoạt động quá:

tar -cvf -C /path1/path2 allfiles.tar -T mylist.txt 

Nó lưu trữ tất cả các tập tin trong /path1/path2 ngay cả những người mà không phải là trong mylist.txt

Có cách nào để làm điều đó?

+0

là tất cả các file trong đường dẫn giống nhau không? – hovanessyan

+0

@hovanessyan: có tất cả trong cùng một đường dẫn. – neversaint

+2

cùng một đường dẫn == cùng một thư mục? tại sao không 'cd' vào thư mục đó và gọi tar ở đó? – hovanessyan

Trả lời

36

Trong "giai đoạn Khai thác" của bạn, bạn có thể sử dụng strip-components cờ như

tar xvf tarname.tar --strip-components=n 

đó sẽ loại bỏ các thành phần lãnh đạo đầu tiên n của tên tập tin. Mặc dù nếu bạn có các thành phần đường dẫn tệp khác nhau thì điều này sẽ không hoạt động đối với tất cả các trường hợp.

Nếu bạn muốn làm điều đó trong khi lưu trữ, chỉ có một điều nói đến cái tâm, và tôi sẽ chia sẻ

INPUT: danh sách các file + đường dẫn đầy đủ

1) cho mỗi dòng, chia đường ra của tên tập tin

2) thực hiện cd vào đó đường dẫn và tar vào đó filename

3) lặp lại cho mỗi dòng

+13

cảm ơn. Tôi biết 'dải thành phần'. Tuy nhiên vẫn thích tước trong khi lưu trữ. – neversaint

+0

"cd & tar, then cd & tar" nghe rất giống các ví dụ trong [hướng dẫn tar về "Thay đổi thư mục làm việc" tại gnu.org] (http://www.gnu.org/software/tar/ hướng dẫn sử dụng/html_node/directory.html) bằng cách sử dụng -C trong "trung" của một dòng lệnh để cd & thêm các tập tin sau từ thư mục đó, với nhiều -C & nhiều tập tin, tất cả thêm vào "gốc" của tar. Thậm chí có thể đặt các dòng '-C/path' trong danh sách tệp' --files-from' – Xen2050

Các vấn đề liên quan