Nén thư mục (tar) mà không chứa thư mục chứa trong tên thư mục


21

Tôi đang cố gắng nén một thư mục với tarlệnh.

Khi tôi đang cố gắng nén nó, nó hoạt động tốt. Vấn đề là với tên tập tin.

Đường dẫn nguồn:

/data/file/

Đường dẫn đích:

/data/repo/temp/file.tar.gz

tar zcvf $srcpath $destinationpath

Tôi đang thực thi lệnh từ một thư mục khác, và trong khi giải nén thư mục, tôi nhận được tất cả các thư mục con thay vì thư mục tệp một mình.


1
Cú pháp tar là: tar zcvf file.tar.gz /path/dir/to/compresscó lẽ bạn nên thay đổi lệnh của mình tar zcvf $destinationpath $srcpathnhưng không rõ ràng với tôi những gì bạn cần. Bạn có thể giải thích câu hỏi của bạn với ví dụ về những gì bạn mong đợi từ lệnh tar?
Lety

cảm ơn vì bình luận, vấn đề của tôi là như sau bình luận mà bạn đã chia sẻ ở đây "tar zcvf file.tar.gz / path / dir / to / compres" điều này sẽ hoạt động tốt nếu chúng ta ở trong cùng một thư mục "tập tin" trường hợp của tôi là chúng tôi đang làm việc từ một thư mục khác, ví dụ: / home / testuser1 / file: file là thư mục mà tôi muốn nén và đang loại bỏ lệnh từ root không ở nhà nên chúng tôi có thể cần đưa toàn bộ đường dẫn đến thư mục, trong khi thoát ra đang nhận tất cả các thư mục con từ / home / testuser1 / file thay vì thư mục tệp
Seetha Raman

Có thể là một lỗi đánh máy, nhưng trong ví dụ của bạn, bạn đã trộn lẫn nguồn và đích.
Jacob Vlijm

Câu trả lời:


49

Cách dễ nhất để làm điều đó là cd vào thư mục trước:

cd /path/to/containing/folder && tar -zcvf tarfile.tar.gz foldername_tocompress

Vì vậy, thư mục của thư mục (chứa) trở thành thư mục gốc của tệp nén của bạn.

Nâng cao hơn một chút là sử dụng tùy chọn -C:

tar -zcvf tarfile.tar.gz -C /path/to/foldername_tocompress .

Điều này tạo ra một tar.gztệp trong thư mục (làm việc) hiện tại, chứa tất cả các tệp / thư mục bên trong foldername_tocompress(lưu ý dấu chấm, nói rằng tất cả các tệp / thư mục nên được bao gồm).


4
Dấu chấm ở cuối lệnh thứ hai của bạn sẽ bao gồm tất cả các tệp trong thư mục hiện tại ...
David Duncan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.