前回の記事では、tarコマンドを使用してアーカイブを作成する方法について詳しく説明しました。tarはLinuxで非常に一般的な圧縮スキームですが、ほとんどのアーカイブがzip形式で作成されている(Linux)WindowsおよびMacOSXユーザーにはそれほど人気がありません。
Linuxで(Linux)Zip(作成)およびUnzip(拡張)アーカイブを使用するのは簡単です。実際、ほとんどのGUIアーカイブ管理プログラム(Ark、File Roller、Xarchiverなど)は、コンピューターにあるほとんどすべてのコマンドラインアーカイブプログラムのフロントエンドとして機能します。Zipも(Zip)例外ではありません。もちろん、ターミナル(Terminal)からZipを使用することもできます。方法は次のとおりです。
ご想像のとおり、最初のステップはターミナル(Terminal)を開くことです。
次に、「sudo apt-get install zip unzip」(引用符なし)と入力して、zipとunzipがインストールされていることを確認します。
注:これらの2つのプログラムがすでにインストールされている場合は、上記のように、これが当てはまるというメッセージが表示されます。(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)では、名前を変更する必要があります)。
Stuffフォルダーができたので、「cd」コマンドを使用して、Stuffフォルダー(Stuff)を現在の作業ディレクトリにします。
cd /home/username/Desktop/Stuff
次に、touch doc1.txt doc2.txt doc3.txt && mkdir Filesをターミナルに入力します。これにより、 (Terminal)Filesというフォルダーと、 Stuffフォルダー内に3つのドキュメント(doc1.txt、doc2.txt、doc3.txt)が作成されます。 。
もう1つのコマンドは、新しく作成されたFilesフォルダー(cd Files)に「cd」することです。その中に他のドキュメントが必要になるためです。
cdファイル(cd Files)
最後に、touch doc4.txt doc5.txt doc6.txtと入力して、3つの新しいドキュメントを作成します。
ここで、cd ../..と入力して、デスクトップ(Desktop)を作業ディレクトリに戻します。
zipファイルを作成する前の最後から2番目の手順は、作成したファイルと同じ名前の「追加の」ドキュメントをデスクトップに作成することです。そのため、 (Desktop)touchdoc2.txtdoc3.txtと入力して作成します。
最後に、2つの「追加」テキストファイルをそれぞれ開き、テキストを追加します。意味のある(または長い)ものである必要はありません。そのため、これらのドキュメントは、 Stuff(Stuff)およびfilesフォルダー内に既に作成されているドキュメントとは実際に異なることがわかります。
それが完了したら、zipファイルの作成を開始できます。zipを使用する最も簡単な方法は、作成するzipアーカイブの名前を指定してから、そこに入れる必要のあるすべてのファイルに明示的に名前を付けることです。したがって、作業ディレクトリがデスクトップ(Desktop)であると仮定すると、 zip test Stuff/doc1.txt Stuff/doc2.txt Stuff/doc3.txtと入力して、test.zipというアーカイブを作成します(「.zip」を使用する必要はありません)。コマンドの「」拡張子。自動的に追加されます)。これには、 Stuffフォルダー内にあるdoc1.txt、doc2.txt、およびdoc3.txtが含まれます。
3つのドキュメント(doc1.txt、doc2.txt、およびdoc3.txt)がアーカイブに追加されたことを通知する出力が少し表示されます。
デスクトップ(Desktop)にあるはずのアーカイブをダブルクリックして、これをテストできます。そうすることで、標準のアーカイブプログラム(KDEのArk、GNOMEの(GNOME)ファイルローラー(File Roller)、XfceのXarchiver )で開く必要があります。
では、Filesフォルダはどうですか?必要に応じて、その中のドキュメントをアーカイブにも追加します。上記と同じコマンドを使用できますが、コマンドの最後にStuff/Files/*
アスタリスクは、フォルダ内のすべてを含めることを意味します。したがって、Filesフォルダー内に別のフォルダーがあった場合は、それも追加されます。ただし、そのフォルダ内にアイテムが含まれている場合、それらは含まれません。これを行うには、-r(再帰的または再帰的を表す)を追加する必要があります。
上記の2つのコマンドは、ファイルをzipアーカイブに「追加」するようには設計されていないことに注意してください。それらは1つを作成するように設計されています。ただし、アーカイブはすでに存在するため、コマンドは既存のアーカイブに新しいファイルを追加するだけです。 このアーカイブ(Had)を一度に作成したい場合(教育目的でファイルを徐々に追加するために実行した3つの手順ではなく)、zip -r test Stuff/*と入力するだけで、同じアーカイブを作成できます。
コマンドと出力から、Stuffフォルダー内の3つのファイルと、 (Stuff)Filesフォルダー内の3つのドキュメントが含まれていることがわかります。したがって、すべてが素晴らしくシンプルなコマンドで実行されました。
では、デスクトップ(Desktop)で作成した2つの「余分な」ドキュメントについてはどうでしょうか。 ええと(Well)、zipが機能する方法は、アーカイブにすでに存在するアーカイブにファイルを追加しようとすると、新しいファイルが古いファイルを上書きすることです。したがって、デスクトップ(Desktop)で作成したドキュメント(doc2.txtとdoc3.txt)にはコンテンツが含まれているため(doc2.txtに「helloworld!」を追加し、doc3.txtに「yay」を追加しました)、次のことができるはずです。それらのドキュメントを追加して、これをテストできるようにします。 まず(First)、2つの「余分な」ドキュメントをStuffフォルダーにドラッグします。
新しいドキュメントで既存のドキュメントを上書きするかどうかを尋ねられる可能性があります(これはフォルダ内にあり、zipアーカイブではないことを覚えておいてください)。そのため、これを実行します。
zip test Stuff/doc2.txt Stuff/doc3.txtと入力して、アーカイブに追加しましょう。
上記のコマンドで、ファイルが追加されるのではなく更新されていることがわかります。アーカイブを確認すると、ファイルは同じように見えますが、doc2.txtとdoc3.txtを開くと、元のファイルのように空白ではなく、コンテンツが含まれていることがわかります。そうだった。
Linuxでは(Linux)、ファイル名の先頭にピリオド( "。")を追加すると、一部のファイルが非表示になることがあります。これは、存在する必要があるが、多くの場合表示されない構成ファイルで特に一般的です(これにより、混乱が緩和され、構成ファイルが誤って削除される可能性が低くなります)。これらをzipファイルに非常に簡単に追加できます。 まず(First)、ディレクトリ内のすべてのファイルからバックアップと呼ばれるzipファイルを作成するとします。ターミナルにzip backup *と入力することでこれを行うことができます。
これにより、すべてのファイルとフォルダーが追加されますが、これらのフォルダー内のアイテムは含まれません。それらを追加するには、-rを再度追加して、zip -r backup *がコマンドになるようにします。
今、私たちはほとんどそこにいます。フォルダ、ファイル、隠しファイルを再帰的に追加するためのコマンドは、実際には非常に単純です:zip-rbackup。
今、解凍は非常に簡単です。ただし、何かを行う前に、デスクトップ(Desktop)上のドキュメント(doc2.txtおよびdoc3.txt)とStuffフォルダーを削除してください。それらがなくなったら、unzip test.zipと入力すると、元のzipアーカイブの内容が現在のディレクトリに展開されます。
注:ドキュメントを削除しなかった場合は、zipファイルの内容を既存のファイルに解凍しようとするため、すべてのドキュメントを置き換えるかどうかを尋ねられます。
以上です!解凍と解凍は非常に一般的なタスクであり、利用可能な(Unzipping)GUIオプションは確かにありますが、実際には、ターミナル(Terminal)から同じタスクを実行することもそれほど難しくありません。
Create and Edit Zip Files In Linux Using The Terminal
In a previous article, we detailed how to use the tar command to creаte archives. While tar is a very common compressіon scheme for Linux, it іsn’t nearly as рopular for Windows and Mac ОS X users, who will find most of their archives created using the zip format.
It’s easy to use Zip (to create) and Unzip (to expand) archives in Linux. In fact, most GUI archive management programs (such as Ark, File Roller and Xarchiver), will act as a frontend to pretty much any command line archiving program you have on your computer, and Zip is no exception. Of course, we can also use Zip from the Terminal. Here’s how.
The first step, as you might guess, is to open the Terminal.
Next, type “sudo apt-get install zip unzip” (without the quotes), just to make sure we have zip and unzip installed.
Note: if those two programs are already installed, you’ll receive a message stating this to be the case, as shown above.
Once installed, we can use zip to create archives (or modify existing ones), and unzip to expand them to their originals. For the sake of this article, we’ll create a new folder on our Desktop, called Stuff. In the Terminal, we can do so with a single command – mkdir /home/username/Desktop/Stuff (of course, you’ll replace “username” with your own username, as shown below, and if you already have a Stuff folder on your Desktop, you’ll want to change the name).
Now that we have a Stuff folder, we’ll use the ‘cd’ command to make the Stuff folder our current working directory.
cd /home/username/Desktop/Stuff
Now, type touch doc1.txt doc2.txt doc3.txt && mkdir Files into your Terminal, which will create a folder called Files, as well as three documents – doc1.txt, doc2.txt and doc3.txt – inside the Stuff folder.
One more command, to ‘cd’ into the newly-created Files folder (cd Files), because we’ll want some other documents inside that.
cd Files
Finally, type touch doc4.txt doc5.txt doc6.txt in order to create three new documents.
Now, type cd ../.. to change the Desktop back to the working directory.
Our next-to-last step before creating a zip file is to create a couple “extra” documents on the Desktop with the same names as files we just created, so type touch doc2.txt doc3.txt to create them.
Finally, open each of the two “extra” text files and add some text to them. It doesn’t need to be anything meaningful (or long), just so we can see that these documents are indeed different from the ones already created inside the Stuff and files folders.
Once that’s done, we can start creating our zip files. The simplest way to use zip is to tell it the name of the zip archive you want to create, then explicitly name each and every file that should go into it. So, assuming our working directory is the Desktop, we would type zip test Stuff/doc1.txt Stuff/doc2.txt Stuff/doc3.txt to create an archive called test.zip (we don’t need to use the “.zip” extension in the command, as it will be added automatically), which would contain doc1.txt, doc2.txt and doc3.txt as found inside the Stuff folder.
You’ll see a bit of output, which informs us that three documents (doc1.txt, doc2.txt and doc3.txt) have been added to the archive.
We can test this by double clicking the archive, which should be sitting on our Desktop. Doing so should open it up in the standard archive program (Ark in KDE, File Roller in GNOME and Xarchiver in Xfce).
Now, what about the Files folder? Assuming we want it, add the documents inside it, into our archive as well, we could use the same command as above, but add Stuff/Files/* to the end of the command.
The asterisk means to include everything inside the folder. So if there had been another folder inside the Files folder, it would have been added as well. However, if that folder had items inside of it, they will not be included. To do that, we would need to add -r (which stands for recursive or recursively).
It should be noted that the above two commands aren’t designed to “add” files to a zip archive; they’re designed to create one. However, since the archive already exists, the command simply adds any new files into the existing archive. Had wanted to create this archive all at once (instead of the three steps we’ve performed to gradually add files to it for educational purposes), we could simply have typed zip -r test Stuff/* and would have created the same archive.
You’ll notice from the command and the output that the three files inside the Stuff folder are included, as well as the three documents inside the Files folder, so everything was accomplished in a nice, simple command.
Now, what about those two “extra” documents we created on our Desktop? Well, the way zip works is if you try to add a file to an archive that already exists in the archive, the new files will overwrite the old ones. So, since the documents we created on our Desktop (doc2.txt and doc3.txt) have content to them (we added “hello world!” to doc2.txt and “yay” to doc3.txt), we should be able to add those documents and then be able to test this. First, we’ll drag the two “extra” documents into the Stuff folder.
You’ll likely be asked if you want the new documents to overwrite the existing ones (this is in the folder, remember, not the zip archive), so let this happen.
Now that this is done, let’s add them to the archive by typing zip test Stuff/doc2.txt Stuff/doc3.txt
You’ll notice the above command now shows files being updated instead of added. If we now check the archive, we’ll notice the files appear to be the same, but when doc2.txt and doc3.txt are opened, you’ll see they now have content in them, instead of being blank as our original files were.
Sometimes in Linux, you’ll see that some files are hidden by adding a period (“.”) to the beginning of the file name. This is particularly common for configuration files, which need exist, but often aren’t visible (which eases up on clutter as well as makes it less likely a configuration file will be accidentally deleted). We can add these to a zip file quite easily. First, let’s assume we want to create a zip file called backup out of every file in a directory. We can do so by typing zip backup * into the Terminal.
This will add all files and folders, although any items in those folder will not be included. To add them, we would add -r again, so that zip -r backup * would be the command.
Now we’re almost there. To recursively add folders, files, and hidden files, the command is actually very simple simple: zip -r backup .
Now, unzipping is quite easy. Before we do anything, however, go ahead and delete the documents on the Desktop (doc2.txt and doc3.txt) as well as the Stuff folder. Once they’re gone, typing unzip test.zip will expand the contents of our original zipped archive into your current directory.
Note: If we hadn’t deleted the documents, we would be attempting to unzip the contents of our zip file into an existing file, so would be asked if we wanted to replace each and every document.
And that’s it! Zipping and Unzipping is a pretty common task, and while there are certainly GUI options available, with practice you’ll find performing those same tasks from the Terminal isn’t very difficult either.