指定されたディレクトリへのtar.gzパッケージを抽出からファイルを抽出しようとしたくない、Baiduは全体のテンプレートで、何の例は単に不可解、ありません。それは、自分自身のテストを理解するために考えられました。
プロセスへのBaiduの
タールパッケージ
TVF yourtarfileタール| grepをfileyouwant、
タールあるxv yourtarfile fileyouwant(絶対パス上のフルパスコピー)
tar.gz形式包
かかるztvf yourtargzfile | grepをfileyouwant、
タールzxvf yourtarfile fileyouwant(絶対パス上のフルパスコピー)
アイデアは、最初のファイルパスを見つけ、その後、アンパックすることです。しかし、上記の「絶対パスへの完全パスは」理解することが考えられて投げた後、どのような地獄です。操作を見てください。
[root@fengzw test]# pwd
/root/test
[root@fengzw test]# ls
mariadb-10.4.12.tar.gz
[root@fengzw test]# tar -tzvf mariadb-10.4.12.tar.gz | grep CMakeLists.txt
.....
-rw-rw-r-- buildbot/buildbot 17932 2020-01-27 04:43 mariadb-10.4.12/CMakeLists.txt
......
[root@fengzw test]# tar -zxvf mariadb-10.4.12.tar.gz mariadb-10.4.12/CMakeLists.txt -C ../
mariadb-10.4.12/CMakeLists.txt
[root@fengzw test]# cd ..
[root@fengzw ~]# ls
anaconda-ks.cfg CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-Vault.repo test tools
[root@fengzw ~]# ls test/
mariadb-10.4.12 mariadb-10.4.12.tar.gz
[root@fengzw ~]# ls test/mariadb-10.4.12
CMakeLists.txt
実行テストにディレクトリを切り替えます:
[root@fengzw ~]# ls test/
mariadb-10.4.12.tar.gz
[root@fengzw ~]# ls tools/testtar/
[root@fengzw ~]# tar -zxvf test/mariadb-10.4.12.tar.gz mariadb-10.4.12/CMakeLists.txt -C tools/testtar/
mariadb-10.4.12/CMakeLists.txt
[root@fengzw ~]# ls tools/testtar/
[root@fengzw ~]# ls test
mariadb-10.4.12.tar.gz
[root@fengzw ~]# ls
anaconda-ks.cfg CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-Vault.repo mariadb-10.4.12 test tools
[root@fengzw ~]# ls mariadb-10.4.12/
CMakeLists.txt
以上のことから:
- いわゆる絶対パスは、tarパッケージ名ではなく、絶対パスシステムレベルから始まったパスをチェックアウトTVFています。これは、「フル・パス」の概念と呼ばれています。
- ファイルが抽出されている場合は、-C指定の保管場所は有効になりません!!!
- パスではなく、元のアーカイブのパスよりも、抽出現行制度の下で実行するための唯一のデフォルトタールエキス。
- これは、抽出されたファイルを格納するために圧縮されたパッケージパスに応じて、タールのパッケージ名から始まるディレクトリを生成します。
- 使用は、集計ステップ; B、抽出するファイルの検索パスに記載されている。、抽出されたファイルを格納するために所望の位置へのパス切り替えをC、抽出ファイル。(パスへの切り替えは意味を成さないので、しかし、それは、新しいディレクトリが生成されます)