이전 기사에서 tar 명령을 사용하여 아카이브를 만드는 방법을 자세히 설명했습니다. tar는 Linux용(Linux) 으로 매우 일반적인 압축 방식이지만 zip 형식을 사용하여 만든 대부분의 아카이브를 찾는 Windows 및 Mac OS X 사용자에게는 그다지 인기가 없습니다 .
Linux 에서 아카이브 Zip (생성) 및 Unzip (확장) 을 사용하는 것은 쉽습니다 . 사실, 대부분의 GUI 아카이브 관리 프로그램(예: Ark , File Roller 및 Xarchiver )은 컴퓨터에 있는 거의 모든 명령줄 아카이브 프로그램의 프론트엔드 역할을 하며 Zip 도 예외는 아닙니다. 물론 터미널(Terminal) 에서 Zip 을 사용할 수도 있습니다 . 방법은 다음과 같습니다.
짐작할 수 있듯이 첫 번째 단계는 터미널(Terminal) 을 여는 것 입니다.
다음으로 " sudo apt-get install zip unzip "(따옴표 제외)을 입력하여 zip 및 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라는(Stuff) 단일 명령으로 이를 수행할 수 있습니다 . 바탕 화면(Desktop) 에서 이름을 변경하고 싶을 것입니다).
이제 Stuff 폴더가 있으므로 'cd' 명령을 사용하여 Stuff 폴더를 현재 작업 디렉토리로 만듭니다.
cd /home/username/Desktop/Stuff
이제 touch doc1.txt doc2.txt doc3.txt && mkdir Files 를 터미널 에 입력하면 (Terminal)Files 폴더와 (Files)Stuff 폴더 안에 doc1.txt, doc2.txt 및 doc3.txt라는 세 개의 문서 가 생성됩니다 . .
새로 생성된 Files(Files) 폴더(cd Files ) 로 'cd'하는 명령을 하나 더 추가 합니다. 그 안에 다른 문서가 필요하기 때문입니다.
CD 파일(cd Files)
마지막으로 touch doc4.txt doc5.txt doc6.txt 를 입력하여 세 개의 새 문서를 만듭니다.
이제 cd ../..데스크탑(Desktop) 을 다시 작업 디렉토리 로 변경하십시오 .
zip 파일을 만들기 전에 마지막 단계 는 방금 만든 파일과 이름이 같은 몇 개의 "추가" 문서를 바탕 화면 에 만드는 (Desktop)것이므로 touch doc2.txt doc3.txt(touch doc2.txt doc3.txt) 를 입력하여 만듭니다.
마지막으로 두 개의 "추가" 텍스트 파일을 각각 열고 일부 텍스트를 추가합니다. 의미 있는(또는 긴) 것은 필요하지 않습니다. 이 문서가 실제로 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 의 (KDE)Ark , GNOME 의 파일 롤러(File Roller) , Xfce 의 Xarchiver ) 에서 열어야 합니다.
이제 Files 폴더는 어떻습니까? 원한다고 가정하고 그 안에 있는 문서를 아카이브에도 추가하면 위와 같은 명령을 사용할 수 있지만 명령 끝에 Stuff/Files/*
별표는 폴더 안의 모든 항목을 포함한다는 의미입니다. 따라서 Files 폴더 안에 다른 폴더가 있었다면 이 폴더도 추가되었을 것입니다. 그러나 해당 폴더에 항목이 있는 경우 항목이 포함되지 않습니다. 그렇게 하려면 -r (재귀 또는 재귀를 나타냄)을 추가해야 합니다.
위의 두 명령은 zip 아카이브에 파일을 "추가"하도록 설계되지 않았습니다. 그들은 하나를 만들도록 설계되었습니다. 그러나 아카이브가 이미 존재하기 때문에 명령은 단순히 기존 아카이브에 새 파일을 추가합니다. 이 아카이브를 한 번에 만들고 싶었다 면(Had) (교육 목적으로 파일을 점진적으로 추가하기 위해 수행한 세 단계 대신) zip -r test Stuff/* 를 입력하기만 하면 동일한 아카이브를 만들 수 있습니다.
명령과 출력에서 Stuff 폴더에 있는 세 개의 파일과 (Stuff)Files 폴더에 있는 세 개의 문서가 포함되어 있어 모든 것이 훌륭하고 간단한 명령으로 완료되었음을 알 수 있습니다.
이제 데스크탑(Desktop) 에서 만든 두 개의 "추가" 문서는 어떻습니까? zip(Well) 이 작동하는 방식은 아카이브에 이미 존재하는 아카이브에 파일을 추가하려고 하면 새 파일이 이전 파일을 덮어쓰는 것입니다. 따라서 데스크탑(Desktop) 에서 생성한 문서 (doc2.txt 및 doc3.txt)에는 내용이 포함되어 있으므로(doc2.txt에 "hello world!"를 추가하고 doc3.txt에 "yay"를 추가함) 다음을 수행할 수 있어야 합니다. 해당 문서를 추가한 다음 이를 테스트할 수 있습니다. 먼저(First) 두 개의 "추가" 문서를 Stuff 폴더로 드래그합니다.
새 문서가 기존 문서를 덮어쓰도록 할 것인지 묻는 메시지가 표시될 수 있으므로(zip 아카이브가 아닌 폴더에 있음을 기억하십시오) 이렇게 하십시오.
이제 이 작업이 완료 zip test Stuff/doc2.txt Stuff/doc3.txt
이제 위의 명령이 추가되는 대신 업데이트되는 파일을 표시하는 것을 알 수 있습니다. 이제 아카이브를 확인하면 파일이 동일한 것처럼 보이지만 doc2.txt와 doc3.txt가 열리면 원본 파일처럼 비어 있지 않고 내용이 포함된 것을 볼 수 있습니다. 이었다.
때때로 Linux 에서는 파일 이름의 시작 부분에 마침표(".")를 추가하여 일부 파일이 숨겨져 있는 것을 볼 수 있습니다. 이것은 존재해야 하지만 종종 보이지 않는 구성 파일에 특히 일반적입니다(이는 혼란을 완화하고 구성 파일이 실수로 삭제될 가능성을 줄여줍니다). 우리는 이것을 아주 쉽게 zip 파일에 추가할 수 있습니다. 먼저(First) 디렉토리의 모든 파일에서 backup이라는 zip 파일을 생성한다고 가정해 보겠습니다. 터미널에 zip backup * 을 입력 하면 됩니다.
이렇게 하면 모든 파일과 폴더가 추가되지만 해당 폴더의 항목은 포함되지 않습니다. 추가하려면 -r을 다시 추가하여 zip -r backup * 이 명령이 되도록 합니다.
이제 거의 다 왔습니다. 폴더, 파일 및 숨김 파일을 재귀적으로 추가하기 위한 명령은 실제로 매우 간단합니다. zip -r backup .
이제 압축 풀기가 매우 쉽습니다. 그러나 무엇을 하기 전에 데스크탑(Desktop) (doc2.txt 및 doc3.txt)과 Stuff 폴더의 문서를 삭제하십시오. 파일이 사라지면 unzip test.zip(unzip test.zip) 을 입력 하면 원래 압축된 아카이브의 내용이 현재 디렉토리로 확장됩니다.
참고: 문서를 삭제하지 않은 경우 zip 파일의 내용을 기존 파일에 압축 해제하려고 하므로 각 문서를 바꿀 것인지 묻는 메시지가 표시됩니다.
그리고 그게 다야! 압축 및 압축 해제(Unzipping) 는 매우 일반적인 작업이며 확실히 GUI 옵션을 사용할 수 있지만 연습을 통해 (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 create аrchives. While tar is a very common compressiоn ѕcheme for Linux, it isn’t nearly as popular for Windows and Mac OS X userѕ, who wіll 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.