tar: --exclude = Thời gian. Git: Không thể thống kê: Không có tệp hoặc thư mục như vậy


11

Điều này khiến tôi điên mất. Tôi muốn tarmột thư mục, nhưng loại trừ một số tập tin. Đây là lệnh của tôi:

tar -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION --exclude='.git' --exclude='.gitignore'

Mặc dù lệnh trên hoạt động trên RedHat EL5, nhưng nó không hoạt động trên Mac OS 10.8.2. Tôi đã thử thay thế 'bằng ", \'\". Tôi đã cố gắng loại bỏ các dấu hiệu bằng nhau. Không có gì hoạt động.

Tôi đang làm gì sai?


Sử dụng gnutartừ Brew, MacPort, v.v ... tar của Apple quá tê liệt.
jww

Câu trả lời:


22

Tất cả các tùy chọn cần phải được đặt cùng nhau trước các đối số và -fcờ cần đặt trước tệp tar:

tar -zcv --exclude = '. git' --exclude = '. gitignore' -f $ NAME- $ VERSION.tar.gz $ NAME- $ PHIÊN BẢN

Nếu bạn làm tar --help , --excludetùy chọn xuất hiện trong trợ giúp? Tôi không biết OSX nhưng có lẽ có một gtarthay vì chứng khoán tar.
Flup

2
Ah tôi thấy nó :) thử này: tar --exclude='.git' --exclude='.gitignore' -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION Các -fcờ hy vọng một tên tập tin như là đối số tiếp theo.
Flup

Xin lỗi, chỉnh sửa. Tôi mới ở đây nên chịu đựng tôi!
Flup

2
Có thể chứng thực rằng điều này hoạt động trên máy Mac - 10.9. Mất một lúc để tìm phiên bản phù hợp, đây là lý do tôi để lại bình luận của mình ở đây!
John ALLen

2

Điều này cung cấp cho bạn những gì bạn muốn:

tar czvf $NAME-$VERSION.tar.gz $NAME-$VERSION --wildcards --exclude=.git --exclude=.gitignore

1

Có vẻ như bạn muốn lọc các thư mục meta .git, cách dễ nhất là sử dụng --exclude-vcs để loại trừ các thư mục hệ thống kiểm soát phiên bản:

tar -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION --exclude-vsc

Tôi đã sử dụng "tar (GNU tar) 1.27.1" trên máy Linux của mình, có vẻ như BSD General Command (phiên bản không phải GNU) của mac không hỗ trợ tùy chọn này.


Bạn có chắc chắn điều này hoạt động với tar của Apple? Xem tar(1)trang người đàn ông của Apple . nó không liệt kê --exclude-vschoặc --exclude-vcs.
jww

Cảm ơn thân yêu @jww cho gợi ý của bạn. Tôi đã chỉnh sửa câu trả lời của tôi để có hiệu quả hơn.
Kayvan Tehrani
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.