はじめに: この記事は Linux の基本操作の章の内容です。
私が使用している環境は Tencent Cloud Server: CentOS 7.6 64bit をベースとしています。
学習セット:
ディレクトリインデックス:
1. 基本的な構文と関数
2. オプションのパラメータの説明 【重要】
3. テスト例の作成
4. tar パッケージ化命令の使用例
- - 4.1 現在のディレクトリ/ファイルにパックする
- - 4.2 パッケージングの詳細を表示する
5. tar の解凍例コマンドの使い方
- - 5.1 現在のディレクトリ/ファイルに解凍
- - 5.2 指定したディレクトリに解凍
6. パッケージ化と圧縮の簡単な説明
7. おすすめの関連記事またはシリーズ
1. 基本的な構文と関数
基本構文: tar [-cxtzjvf] ファイルとディレクトリ...パラメータ
機能: 梱包/開梱します。開けずに中身を読むだけです。[通常、パッケージ化後のサフィックスは tgz です]
2. オプションのパラメータの説明
注: tar コマンドにはオプションのパラメータが多数あり、複雑であるため、通常は次の 2 つのパラメータの組み合わせを覚えておくだけで済みます。
- パッケージング: tar -czvf
- 解凍: tar -xzvf
- c: パッケージングファイルの作成
- ×:解凍時にパッケージファイルが存在する
- z: パッケージ化されたオブジェクトの属性も持ちます
- f: 名前
- v: パッケージの詳細を表示します
オプションのパラメータ | パラメータの意味 |
---|---|
-c | 圧縮ファイルを作成する |
-バツ | 圧縮ファイルを解凍する |
-f | ドキュメント名の後に新しいドキュメント名を続けて使用します。 |
-v | 圧縮中にファイルを表示します。一般的に使用されますが、バックグラウンドでの実行には推奨されません。 |
-t | tarfile 内のファイルを表示する |
-j | bzip2 の属性も持っていますか? つまり、bzip2 圧縮を使用する必要があるのでしょうか? |
-z | gzipの属性も付いているのでしょうか?つまり、gzip 圧縮を使用する必要があるのでしょうか? |
-C | 指定したディレクトリに解凍します |
3. テスト例の作成
[Mortal@VM-12-16-centos unzip_test]$ cd ~
[Mortal@VM-12-16-centos ~]$ mkdir test_tar
[Mortal@VM-12-16-centos ~]$ cd test_tar
[Mortal@VM-12-16-centos test_tar]$ mkdir -p a/aa/aaa
[Mortal@VM-12-16-centos test_tar]$ echo "a: test" > tar.txt
[Mortal@VM-12-16-centos test_tar]$ echo "aa:test" > a.txt
[Mortal@VM-12-16-centos test_tar]$ echo "aaa: test" > a/aa/aaa/a.txt
[Mortal@VM-12-16-centos test_tar]$ tree .
.
|-- a
| `-- aa
| `-- aaa
| `-- a.txt
|-- a.txt
`-- tar.txt
3 directories, 3 files
4. タールパッケージング指示の使用例
4.1 現在のディレクトリ/ファイルへのパッケージ化
使用法: tar czf パッケージ名 パッケージ オブジェクト
- c: パッケージングファイルの作成
- z: パッケージ化されたオブジェクトの属性も持ちます
- f: 名前
/* 打包目录 */
[Mortal@VM-12-16-centos test_tar]$ ls
a a.txt tar.txt
[Mortal@VM-12-16-centos test_tar]$ tar czf a_tar.tgz a
[Mortal@VM-12-16-centos test_tar]$ ls
a a_tar.tgz a.txt tar.txt
/* 打包文件 */
[Mortal@VM-12-16-centos test_tar]$ tar czf a_txt.tgz a.txt
[Mortal@VM-12-16-centos test_tar]$ ls
a a_tar.tgz a.txt a_txt.tgz tar.txt
.4.2 パッケージの詳細を表示する
使用法: tar czvf パッケージ名 パッケージ オブジェクト
- v: パッケージの詳細を表示します
/* 打包目录 */
[Mortal@VM-12-16-centos test_tar]$ ls
a a_tar.tgz a.txt a_txt.tgz tar.txt
[Mortal@VM-12-16-centos test_tar]$ mkdir tar_v
[Mortal@VM-12-16-centos test_tar]$ cp a tar_v
cp: omitting directory ‘a’
[Mortal@VM-12-16-centos test_tar]$ cp -r a tar_v
[Mortal@VM-12-16-centos test_tar]$ ls tar_v
a
[Mortal@VM-12-16-centos test_tar]$ cd tar_v/
[Mortal@VM-12-16-centos tar_v]$ ls
a
[Mortal@VM-12-16-centos tar_v]$ tar czvf new_tar_v.tgz a
a/
a/aa/
a/aa/aaa/
a/aa/aaa/a.txt
[Mortal@VM-12-16-centos tar_v]$ ls
a new_tar_v.tgz
/* 打包文件 */
[Mortal@VM-12-16-centos tar_v]$ cp ../tar.txt .
[Mortal@VM-12-16-centos tar_v]$ ls
a new_tar_v.tgz tar.txt
[Mortal@VM-12-16-centos tar_v]$ tar czvf a_v.tgz tar.txt
tar.txt
[Mortal@VM-12-16-centos tar_v]$ ls
a a_v.tgz new_tar_v.tgz tar.txt
5. tar展開コマンドの使用例
5.1 現在のディレクトリに解凍します
使用法: tar xzvf unpack オブジェクト
- 注: 操作オプションの指示の意味は、以前のパッケージと同じです。
[Mortal@VM-12-16-centos tar_v]$ ls
a a_v.tgz new_tar_v.tgz tar.txt
[Mortal@VM-12-16-centos tar_v]$ mkdir open_tar
[Mortal@VM-12-16-centos tar_v]$ ls
a a_v.tgz new_tar_v.tgz open_tar tar.txt
[Mortal@VM-12-16-centos tar_v]$ cp a_v.tgz new_tar_v.tgz open_tar/
[Mortal@VM-12-16-centos tar_v]$ ls open_tar/
a_v.tgz new_tar_v.tgz
[Mortal@VM-12-16-centos tar_v]$ cd open_tar/
[Mortal@VM-12-16-centos open_tar]$ ls
a_v.tgz new_tar_v.tgz
[Mortal@VM-12-16-centos open_tar]$ tar xzvf a_v.tgz
tar.txt
[Mortal@VM-12-16-centos open_tar]$ tar xzvf new_tar_v.tgz
a/
a/aa/
a/aa/aaa/
a/aa/aaa/a.txt
5.2 指定したディレクトリに解凍する
使用法: tar xzvf unpack object -C 指定されたディレクトリ
- -C: 解凍先の指定されたディレクトリを指定します (指定されたディレクトリは存在する必要があります)。
[Mortal@VM-12-16-centos open_tar]$ mkdir test_C
[Mortal@VM-12-16-centos open_tar]$ tar xzvf new_tar_v.tgz -C test_C
a/
a/aa/
a/aa/aaa/
a/aa/aaa/a.txt
[Mortal@VM-12-16-centos open_tar]$ ls test_C/
a
[Mortal@VM-12-16-centos open_tar]$ tree test_C/
test_C/
`-- a
`-- aa
`-- aaa
`-- a.txt
3 directories, 1 file
6.梱包・圧縮について
パッケージング: サイズを圧縮せずに物をグループ化することを意味します。学校に行くときにランドセルに本を入れるのと同じで、さまざまなテーマの本をランドセルに入れて一緒に学校に運ぶだけです。
圧縮: 目的は、元のサイズの空間を圧縮することです。