Как зашифровать файлы без папки верхнего уровня, но сохранить подпапки

Предположим, у меня есть папка с именем abc, она рекурсивно имеет несколько подпапок, я хочу заархивировать все под abc, когда я использую следующую команду

zip -r abc.zip abc/*

Я получаю abc.zip, но в нем содержится папка верхнего уровня abc, и все находится под abc, например abc/xxx, abc/yyy и т.д. Как удалить папку верхнего уровня abc? Я хочу поставить все прямо в abc.zip.

Заметка:

  1. Я могу только молчать из-за пределов папки, поэтому перейдите в папку abc, а zip * не работает для меня
  2. Мне нужно запустить эту команду в одной строке, я могу отделить несколько команд;
  3. опция -j также не работает, так как она удаляет вспомогательные папки, я хочу сохранить их там.

Ответ 1

cd abc
zip -r ../abc.zip *

Хотя я скажу, что в большинстве случаев это означает, что abc упрощает управление.

Ответ 2

7z a -tzip abc.zip -w abc/.

321