Linux 시스템에서 파일 패키징 및 압축은 매우 일반적이고 필요한 작업이며 tar 명령은 강력한 도구입니다. 여러 파일을 하나로 묶을 수 있을 뿐만 아니라 파일을 압축하고 압축을 풀 수도 있습니다. Linux 초보자의 경우 tar 명령에 익숙해지는 것이 매우 중요합니다. 작업 효율성이 크게 향상되기 때문입니다. 이 기사에서는 tar 명령을 사용하는 방법을 완전히 이해하여 Linux에서 파일 패키징 및 압축 기술을 쉽게 배울 수 있습니다.
간단히 말해 아카이브는 일련의 파일 및/또는 디렉터리를 포함하는 단일 파일입니다. 아카이브 파일은 일반적으로 로컬 또는 인터넷을 통한 전송에 사용되거나 일련의 파일 및 디렉터리의 백업 복사본으로 사용되어 단일 파일로 작업할 수 있습니다(압축된 경우 모든 파일의 합보다 작음). . 마찬가지로 아카이브는 소프트웨어 애플리케이션 패키징에 사용됩니다. 이 단일 파일은 전송을 위해 쉽게 압축될 수 있으며 아카이브의 파일은 원래 구조와 권한을 유지합니다.
tar 도구를 사용하여 아카이브에서 파일을 생성, 나열 및 추출할 수 있습니다. tar로 생성된 아카이브는 종종 "tar 파일", "tar 아카이브" 또는 "tar 패키지"라고 불립니다(모든 아카이브된 파일이 하나의 파일로 결합되기 때문입니다).
이 튜토리얼에서는 tar를 사용하여 아카이브의 내용을 생성, 나열 및 추출하는 방법을 보여줍니다. 세 가지 작업 모두 두 가지 공통 옵션 -f 및 -v를 사용합니다. -f를 사용하여 아카이브 파일의 이름을 지정하고 -v("redundant") 옵션을 사용하여 파일을 처리할 때 tar가 파일 이름을 출력하도록 합니다. -v 옵션은 필수는 아니지만 tar 작업의 진행 상황을 관찰할 수 있습니다.
이 튜토리얼의 다음 부분에서는 3가지 주제를 다룹니다. 1. 아카이브 파일 생성 2. 아카이브 파일 내용 나열 3. 아카이브 파일 내용 추출. 또한 아카이브 관리에 관한 6가지 실제 질문에 답하는 것으로 이 튜토리얼을 마무리하겠습니다. 이 튜토리얼에서 배우는 내용은 사이버 보안 및 클라우드 기술과 관련된 작업을 수행하는 데 중요합니다.
1. 보관 파일 만들기
tar를 사용하여 아카이브를 생성하려면 -c("create") 옵션을 사용한 다음 -f 옵션을 사용하여 생성할 아카이브의 이름을 지정합니다. 일반적인 관행은 my-backup.tar와 같이 .tar 확장자를 가진 이름을 사용하는 것입니다. 별도로 명시하지 않는 한 이 문서의 나머지 부분에서 사용되는 모든 명령과 매개변수는 소문자입니다. 이 기사에 대한 명령을 터미널에 입력할 때 각 명령줄 시작 부분에 $ 프롬프트를 입력할 필요가 없다는 점을 기억하십시오.
아카이브할 파일 이름을 매개변수로 입력하세요. 모든 파일과 해당 하위 디렉터리를 포함하는 아카이브를 생성하려면 디렉터리 이름을 매개변수로 제공하세요.
프로젝트 디렉토리의 내용을 보관하려면 다음을 입력하세요.
으아악이 명령은 프로젝트 디렉토리의 모든 내용을 포함하는 project.tar라는 아카이브 파일을 생성하며 원래 프로젝트 디렉토리는 변경되지 않습니다.
아카이브는 -z 옵션을 사용하여 압축할 수 있습니다. 이 옵션은 압축되지 않은 아카이브를 만든 다음 gzip으로 압축하는 것과 동일한 출력을 생성하지만 추가 단계가 필요하지 않습니다.
프로젝트 디렉토리에서 project.tar.gz 압축 패키지를 생성하려면 다음을 입력하세요:
으아악이 명령은 프로젝트 디렉토리의 모든 내용을 포함하는 project.tar.gz 압축 패키지를 생성하며 원래 프로젝트 디렉토리는 변경되지 않습니다.
참고: -z 옵션을 사용할 때는 압축을 나타내는 .tar 확장자 대신 .tar.gz 확장자를 사용해야 합니다. 필수는 아니지만 이는 좋은 습관입니다.
gzip은 유일한 압축 형식이 아니며 bzip2 및 xz도 있습니다. 확장자가 .xz인 파일을 보면 파일이 xz를 사용하여 압축되고, 확장자가 .bz2인 파일이 bzip2를 사용하여 압축된다는 것을 알 수 있습니다. bzip2는 더 이상 유지 관리되지 않으므로 bzip2에서 벗어나 xz에 집중하겠습니다. xz 압축을 사용하면 시간이 더 오래 걸립니다. 그러나 압축이 훨씬 더 좋기 때문에 일반적으로 기다릴 가치가 있습니다. 즉, 아카이브는 일반적으로 다른 형태의 압축보다 작습니다. 더 좋은 점은 서로 다른 압축 형식 간에 파일의 압축을 풀거나 추출하는 데 큰 차이가 없다는 것입니다. 아래에서는 tar를 사용하여 파일을 압축할 때 xz를 사용하는 방법에 대한 예를 볼 수 있습니다.
으아악gzip의 -z 옵션을 xz의 대문자 -J로 변환합니다. 다음은 압축된 형식 간의 차이점을 보여주는 일부 출력입니다.
보시다시피 xz의 압축 시간이 가장 깁니다. 그러나 파일 크기를 줄이는 데 가장 적합하므로 기다릴 가치가 있습니다. 파일이 클수록 압축률이 높아집니다.
2. 보관된 파일의 내용을 나열합니다
tar 아카이브의 내용을 추출하지 않고 나열하려면 -t 옵션을 사용하세요.
project.tar의 내용을 나열하려면 다음을 입력하세요.
$ tar -tvf project.tar
这个命令列出了 project.tar 归档的内容。-v 和 -t 选项一起使用会输出每个文件的权限和修改时间,以及文件名。这与 ls 命令使用 -l 选项时使用的格式相同。
要列出 project.tar.gz 压缩包的内容,输入:
$ tar -tzvf project.tar.gz
3、从归档中提取内容
要提取(解压)tar 归档文件中的内容,使用 -x(“提取”)选项。
要提取 project.tar 归档的内容,输入:
$ tar -xvf project.tar
这个命令会将 project.tar 归档的内容提取到当前目录。
如果一个归档文件被压缩,通常来说它的扩展名为 .tar.gz 或 .tgz,请包括 “-z” 选项。
要提取 project.tar.gz 压缩包的内容,输入:
$ tar -zxvf project.tar.gz
注意: 如果当前目录中有文件或子目录与归档文件中的内容同名,那么在提取归档文件时,这些文件或子目录将被覆盖。如果你不知道归档中包含哪些文件,请考虑先查看归档文件的内容。
在提取归档内容之前列出其内容的另一个原因是,确定归档中的内容是否包含在目录中。如果没有,而当前目录中包含许多不相关的文件,那么你可能将它们与归档中提取的文件混淆。
要将文件提取到它们自己的目录中,新建一个目录,将归档文件移到该目录,然后你就可以在新目录中提取文件。
FAQ
现在我们已经学习了如何创建归档文件并列出和提取其内容,接下来我们可以继续讨论 Linux 专业人员经常被问到的 9 个实用问题。
可以在不解压缩的情况下添加内容到压缩包中吗?
很不幸,一旦文件将被压缩,就无法向其添加内容。你需要解压缩或提取其内容,然后编辑或添加内容,最后再次压缩文件。如果文件很小,这个过程不会花费很长时间,否则请等待一会。
可以在不解压缩的情况下删除归档文件中的内容吗?
这取决压缩时使用的 tar 版本。较新版本的 tar 支持 -delete 选项。
例如,假设归档文件中有 file1 和 file2,可以使用以下命令将它们从 file.tar 中删除:
$ tar -vf file.tar –delete file1 file2
删除目录 dir1:
$ tar -f file.tar –delete dir1/*
压缩和归档之间有什么区别?
查看归档和压缩之间差异最简单的方法是查看其解压大小。归档文件时,会将多个文件合并为一个。所以,如果我们归档 10 个 100kb 文件,则最终会得到一个 100kb 大小的文件。而如果压缩这些文件,则最终可能得到一个只有几 kb 或接近 100kb 的文件。
如何压缩归档文件?
如上所说,你可以使用带有 cvf 选项的 tar 命令来创建和归档文件。要压缩归档文件,有两个选择:通过压缩程序(例如 gzip)运行归档文件,或在使用 tar 命令时使用压缩选项。最常见的压缩标志 -z 表示 gzip,-j 表示 bzip,-J 表示 xz。例如:
$ gzip file.tar
或者,我们可以在使用 tar 命令时使用压缩标志,以下命令使用 gzip 标志 z:
$ tar -cvzf file.tar /some/directory
如何一次创建多个目录和/或文件的归档?
一次要归档多个文件,这种情况并不少见。一次归档多个文件和目录并不像你想的那么难,你只需要提供多个文件或目录作为 tar 的参数即可:
tar -cvzf file.tar file1 file2 file3
创建归档时如何跳过目录和/或文件?
你可能会遇到这样的情况:要归档一个目录或文件,但不是所有文件,这种情况下可以使用 –exclude 选项:
$ tar –exclude ‘/some/directory’ -cvf file.tar /home/user
在示例中,/home/user 目录中除了 /some/directory 之外都将被归档。将 –exclude 选项放在源和目标之前,并用单引号将要排除的文件或目录引起来,这一点很重要。
本文详细介绍了tar命令的使用方法和参数。通过学习,我们已经掌握了如何使用tar命令来实现文件的打包、压缩和解压缩操作。在日常工作中,熟练掌握这些技巧能够使我们更加高效地管理文件和数据,节约时间和资源。希望本文能够对您有所帮助,也希望大家能够通过实践不断提高自己的技能水平。
위 내용은 Linux에서 파일 패키징 및 압축을 쉽게 학습 - tar 명령에 대한 포괄적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!