Создавайте и редактируйте Zip-файлы в Linux с помощью терминала

В предыдущей статье мы подробно описали, как использовать команду tar для создания архивов. Хотя tar является очень распространенной схемой сжатия для Linux , он не так популярен среди пользователей Windows и Mac OS X , которые обнаружат, что большинство их архивов созданы в формате zip.

В Linux(Linux) легко использовать Zip (для создания) и Unzip (для расширения) архивы . На самом деле, большинство программ управления архивами с графическим интерфейсом(GUI) (например, Ark , File Roller и Xarchiver ) будут выступать в качестве внешнего интерфейса практически для любой программы архивации командной строки, установленной на вашем компьютере, и Zip не является исключением. Конечно, мы также можем использовать Zip из терминала(Terminal) . Вот как.

Первый шаг, как вы могли догадаться, — открыть Терминал(Terminal) .

01Открыть_терминал

Затем введите « sudo apt-get install zip unzip » (без кавычек), просто чтобы убедиться, что у нас установлены zip и unzip.

02Install_Zip_and_Unzip

Примечание. Если эти две программы уже установлены, вы получите сообщение об этом, как показано выше.(Note: if those two programs are already installed, you’ll receive a message stating this to be the case, as shown above.)

После установки мы можем использовать zip для создания архивов (или изменения существующих) и разархивировать их, чтобы расширить их до оригиналов. Ради этой статьи мы создадим на рабочем столе(Desktop) новую папку с названием Stuff . В Терминале(Terminal) мы можем сделать это с помощью одной команды — mkdir /home/username/Desktop/Stuff (конечно, вы замените «username» своим именем пользователя, как показано ниже, и если у вас уже есть папка Stuff на рабочем столе(Desktop) , вы захотите изменить имя).

03Make_Stuff_Directory

Теперь, когда у нас есть папка Stuff , мы будем использовать команду «cd», чтобы сделать папку Stuff нашим текущим рабочим каталогом.

cd /home/username/Desktop/Stuff

Теперь введите touch doc1.txt doc2.txt doc3.txt && mkdir Files в свой терминал(Terminal) , что создаст папку с именем Files , а также три документа — doc1.txt, doc2.txt и doc3.txt — внутри папки Stuff . .

04Make_Docs

Еще одна команда, «cd» в только что созданную папку « Файлы » (cd (Files)Files ), потому что нам нужны какие-то другие документы внутри нее.

cd-файлы(cd Files)

Наконец, введите touch doc4.txt doc5.txt doc6.txt , чтобы создать три новых документа.

05Make_More_Docs

Теперь введите cd ../.. , чтобы вернуть рабочий стол(Desktop) в рабочий каталог.

06CD_Back_To_Desktop

Наш предпоследний шаг перед созданием zip-файла — создать пару «дополнительных» документов на рабочем столе(Desktop) с теми же именами, что и файлы, которые мы только что создали, поэтому введите touch doc2.txt doc3.txt , чтобы создать их.

07Create_Duplicate_Docs

Наконец, откройте каждый из двух «лишних» текстовых файлов и добавьте в них текст. Это не должно быть что-то значимое (или длинное), просто чтобы мы могли видеть, что эти документы действительно отличаются от тех, которые уже созданы в папках Stuff и files.(Stuff)

Как только это будет сделано, мы можем начать создавать наши zip-файлы. Самый простой способ использовать zip — указать ему имя zip-архива, который вы хотите создать, а затем явно назвать каждый файл, который должен в него войти. Итак, предположив, что нашим рабочим каталогом является Desktop , мы должны ввести zip test Stuff/doc1.txt Stuff/doc2.txt Stuff/doc3.txt , чтобы создать архив с именем test.zip (нам не нужно использовать «.zip ” в команде, так как оно будет добавлено автоматически), который будет содержать файлы doc1.txt, doc2.txt и doc3.txt, находящиеся в папке Stuff .

08Создать_Первый_Архив

Вы увидите небольшой вывод, информирующий нас о том, что в архив добавлены три документа (doc1.txt, doc2.txt и doc3.txt).

09First_Archive_Output

Мы можем проверить это, дважды щелкнув архив, который должен находиться на нашем рабочем столе(Desktop) . Это должно открыть его в стандартной программе архивации ( Ark в KDE , File Roller в GNOME и Xarchiver в Xfce ).

10Open_In_Archive_Program

Теперь, что насчет папки «Файлы»? Предполагая, что мы этого хотим, добавьте документы внутри него, а также в наш архив, мы могли бы использовать ту же команду, что и выше, но добавить Stuff/Files/* в конец команды.

11Добавить_в_архив

Звездочка означает, что нужно включить все содержимое папки. Поэтому, если бы в папке « Файлы(Files) » была еще одна папка , она также была бы добавлена. Однако если в этой папке есть элементы, они не будут включены. Для этого нам нужно добавить -r (что означает рекурсивный или рекурсивный).

12Add_Recursively

Следует отметить, что приведенные выше две команды не предназначены для «добавления» файлов в zip-архив; они предназначены для его создания. Однако, поскольку архив уже существует, команда просто добавляет любые новые файлы в существующий архив.  Если бы(Had) мы хотели создать этот архив сразу (вместо трех шагов, которые мы выполнили для постепенного добавления файлов в него в образовательных целях), мы могли бы просто набрать zip -r test Stuff/* и создать тот же самый архив.

13Создать_Рекурсивно

Из команды и вывода вы заметите, что включены три файла из папки Stuff , а также три документа из папки (Stuff)Files , так что все было выполнено с помощью простой и приятной команды.

А как насчет тех двух «лишних» документов, которые мы создали на рабочем столе(Desktop)Ну(Well) , zip работает следующим образом: если вы попытаетесь добавить файл в архив, который уже существует в архиве, новые файлы перезапишут старые. Итак, поскольку документы, которые мы создали на нашем рабочем столе(Desktop) (doc2.txt и doc3.txt), имеют содержание (мы добавили «hello world!» в doc2.txt и «yay» в doc3.txt), мы должны иметь возможность добавьте эти документы, а затем сможете проверить это.  Во- первых(First) , мы перетащим два «лишних» документа в папку Stuff .

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

Теперь, когда это сделано, давайте добавим их в архив, набрав zip test Stuff/doc2.txt Stuff/doc3.txt

14Добавление_файлов_в_архив

Вы заметите, что приведенная выше команда теперь показывает файлы, которые обновляются, а не добавляются. Если мы сейчас проверим архив, мы заметим, что файлы кажутся одинаковыми, но когда doc2.txt и doc3.txt открыты, вы увидите, что теперь в них есть содержимое, а не пустое, как в наших исходных файлах. мы.

Иногда в Linux вы увидите, что некоторые файлы скрыты, добавив точку («.») в начало имени файла. Это особенно характерно для файлов конфигурации, которые должны существовать, но часто невидимы (что избавляет от беспорядка, а также снижает вероятность случайного удаления файла конфигурации). Мы можем легко добавить их в zip-файл.  Во- первых(First) , предположим, что мы хотим создать zip-файл с именем backup из каждого файла в каталоге. Мы можем сделать это, набрав zip backup * в Терминале.

15Добавить_все_файлы

Это добавит все файлы и папки, хотя какие-либо элементы в этих папках не будут включены. Чтобы добавить их, мы снова добавим -r, чтобы zip -r backup * был командой.

16Add_Files_Recursively

Теперь мы почти у цели. Чтобы рекурсивно добавить папки, файлы и скрытые файлы, команда на самом деле очень проста: zip -r backup .

17Add_Files_Recursively_And_Hidden

Теперь разархивировать довольно просто. Однако, прежде чем мы что-либо сделаем, удалите документы на рабочем столе(Desktop) (doc2.txt и doc3.txt), а также папку « Материалы ». (Stuff)Как только они исчезнут, введите unzip test.zip(unzip test.zip) , чтобы развернуть содержимое нашего исходного заархивированного архива в ваш текущий каталог.

18Unzip_Архив

Примечание. Если бы мы не удалили документы, мы попытались бы распаковать содержимое нашего zip-файла в существующий файл, поэтому нас спросили бы, хотим ли мы заменить каждый документ.

И это все! Сжатие и разархивирование(Unzipping) — довольно распространенная задача, и, хотя, безусловно , доступны параметры графического интерфейса(GUI) , с практикой вы обнаружите, что выполнение тех же задач из терминала(Terminal) также не очень сложно.



About the author

Я инженер-программист с более чем 15-летним опытом работы с Microsoft Office и Edge. Я также разработал несколько инструментов, используемых конечными пользователями, например, приложение для отслеживания важных медицинских данных и детектор программ-вымогателей. Мои навыки заключаются в разработке элегантного кода, который хорошо работает на различных платформах, а также в отличном понимании взаимодействия с пользователем.



Related posts