Как отключить предупреждение «zip» в bash? - PullRequest
11 голосов
/ 10 октября 2011

Я хочу сжать файл, используя оболочку bash, поэтому я использовал:

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

Когда я запускаю этот скрипт, он выдает мне предупреждение:

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

Он работает простохорошо, но как я могу отключить это предупреждение?Я правильно использую zip?

Ответы [ 4 ]

32 голосов
/ 10 октября 2011

Я думаю, вам нужен тихий флаг.

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

Со страниц справочника:

-q
--quiet
          Quiet   mode;  eliminate  informational  messages  and  comment
          prompts.  (Useful, for example, in shell scripts and background
          tasks).
2 голосов
/ 10 октября 2011

Возможно, вы не должны указывать zip обновить архив (-u). Без ключа -u zip пытается добавить файлы в архив и должен создавать несуществующие архивы без предупреждений.

1 голос
/ 10 октября 2011

может быть, вы можете попробовать "добавить" вместо обновления (-u)?

со страницы руководства:

   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.
0 голосов
/ 28 марта 2017

Вы также можете удалить ненужные выходные строки и оставить видимой информацию о нормальном состоянии, но сначала вам нужно перенаправить stderr в stdout.Например, следующая команда извлечет из многих zip-файлов только некоторые конкретные файлы, но не будет показывать emnpty-строки и не будет жаловаться на не найденные файлы.Таким образом, у вас все еще есть выход для ведения журнала, отладки и т. Д.

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.

В основном ваша команда будет выглядеть так:

zip -u ${path}.zip ${path} 2>&1 | grep vE '^zip\swarning.*'
...