как сжать файлы внутри файла сценария оболочки?

Я видел файл .sh при выполнении в терминале, он извлекает некоторые файлы jar внутри файла sh. Как создать такие файлы sh? Я не смог открыть этот файл sh в обычном gedit, чтобы проверить содержимое. Есть ли способ сделать это?

-4
задан 17 October 2016 в 07:58
2 ответа

Используйте shar для архивов оболочки

Создайте архивы оболочки с помощью утилиты shar . Например:

# Create some fixture data to archive.
cd /tmp
mkdir -p foo/bar/baz
touch foo/bar/baz/quux

# Create the shell archive.
find foo/ -exec shar {} + > quux.sh

# Remove fixture data.
rm -rf foo/

# Extract archive to recreate directories and files.
sh quux.sh

Вы можете проверить, что это воссоздало ваши данные, с помощью ls -R foo . Вдобавок, если вы проверите quux.sh , вы увидите, что он состоит из серии простых команд оболочки. Вы можете вставить эти команды непосредственно в другой сценарий оболочки, если хотите, или вызвать архив из другого сценария, чтобы распаковать его.

Предостережения

Версия BSD shar на macOS не обрабатывает двоичные файлы данные без отдельного шага кодирования, тогда как в версии GNU доступны различные варианты кодирования . Если ваша версия shar не поддерживает двоичное кодирование, вам может быть лучше использовать более надежную опцию архивирования, такую ​​как tar . Ваш пробег может отличаться.

0
ответ дан 5 December 2019 в 22:14

Для сжатия файла или набора файлов можно использовать команду gzip в UNIX.

Для сжатия одного файла используйте:-

$ gzip filename 

Создается файл с именем filename.gz.
. Чтобы заархивировать папку, сначала создайте файл .tar, а затем заархивируйте его.
. Пусть имя папки будет shell.

Для создания файла .tar используйте:-

$ tar cvf filename.tar shell/.

Создаст файл с именем filename.tar

Теперь используйте

$ gzip filename.tar 

Создаст файл с именем filename.tar.gz.
. Таким образом, вы можете сжать файл.

Примечание: Чтобы распаковать файл, можно использовать команду gunzip.

.
-4
ответ дан 5 December 2019 в 22:14

Теги

Похожие вопросы