2011-10-09 33 views
7

Tôi muốn nén một tập tin sử dụng vỏ bash, vì vậy tôi đã sử dụng:Làm cách nào để tắt cảnh báo 'zip' trong bash?

echo -n 'Insert the file path:' 
read path 
echo 'Hello World' > ${path} 
zip -u ${path}.zip ${path} 

Khi tôi chạy kịch bản này, nó mang lại cho tôi một lời cảnh báo:

zip warning: test.zip not found or empty 
adding: test (deflated 66%) 

Nó hoạt động tốt nhưng làm thế nào tôi có thể tắt cảnh báo này? Tôi có đang sử dụng zip đúng cách không?

Trả lời

18

Tôi nghĩ bạn muốn cờ yên tĩnh.

zip -uq ${path}.zip ${path} 

Từ trang người đàn ông:

-q 
--quiet 
      Quiet mode; eliminate informational messages and comment 
      prompts. (Useful, for example, in shell scripts and background 
      tasks). 
+0

+1 Đó là những gì tôi đang tìm kiếm. Cảm ơn :) –

1

có lẽ bạn có thể thử "thêm" thay vì cập nhật (-u)?

từ trang người đàn ông:

add 
      Update existing entries and add new files. If the archive does not exist 
      create it. This is the default mode. 

    update (-u) 
      Update existing entries if newer on the file system and add new files. 
      If the archive does not exist issue warning then create a new archive. 

    freshen (-f) 
      Update existing entries of an archive if newer on the file system. Does 
      not add new files to the archive. 

    delete (-d) 
      Select entries in an existing archive and delete them. 
1

Có lẽ bạn không nên nói với zip để cập nhật một kho lưu trữ (-u). Nếu không có công tắc -uzip cố gắng thêm tệp vào lưu trữ và nên tạo lưu trữ không tồn tại mà không có cảnh báo.

0

Bạn cũng có thể xóa các dòng đầu ra không cần thiết và để thông tin trạng thái bình thường hiển thị, nhưng trước tiên bạn cần chuyển hướng stderr tới stdout. Ví dụ lệnh sau sẽ trích xuất từ ​​nhiều tệp zip chỉ một số tệp cụ thể, nhưng sẽ không hiển thị các dòng emnpty cũng như không khiếu nại đối với các tệp không tìm thấy. Bằng cách đó bạn vẫn có một số đầu ra cho khai thác gỗ, gỡ lỗi, vv

unzip -jn archivedlogfiles\* \*logfile\* 2>&1 | grep -vE '^$|^caution.*' 
Archive: archivedlogfiles1.zip 
    inflating: little_logfile_20160515.log 
    inflating: little_logfile_20160530.log 
Archive: archivedlogfiles2.zip 
Archive: archivedlogfiles3.zip 
Archive: archivedlogfiles4.zip 
Archive: archivedlogfiles5.zip 
Archive: archivedlogfiles6.zip 
Archive: archivedlogfiles7.zip 
Archive: archivedlogfiles8.zip 
    inflating: little_logfile_20160615.log 
    inflating: little_logfile_20160630.log 
Archive: archivedlogfiles9.zip 
2 archives were successfully processed. 
7 archives had fatal errors. 

Về cơ bản lệnh của bạn sau đó sẽ trông như thế này:

zip -u ${path}.zip ${path} 2>&1 | grep vE '^zip\swarning.*' 
Các vấn đề liên quan