このコマンドを 5GB で使用していますアーカイブ
tar -zxvf archive.tar.gz /folder/in/archive
これは正しい方法ですか?コマンドライン出力がないため、永遠に時間がかかるようです…
コメント
プロセスが実行されています。
folder/folder2/
を使用しても'は機能しません。回答
tar
は相対パスをデフォルトで保存します。 GNU tarは、絶対パスを保存しようとすると、そう言っています。
tar -cf foo.tar /home/foo tar: Removing leading `/" from member names
特定のフォルダーを抽出する必要がある場合は、次の内容を確認してください。 tarファイル:
tar -tvf foo.tar
正確なファイル名をメモします。foo.tar
ファイルの場合、 /home/foo/bar
を次のように抽出します。
tar -xvf foo.tar home/foo/bar # Note: no leading slash
いいえ、投稿した方法は(必然的に)正しくありません。それを行う方法。先頭のスラッシュは省略してください。絶対パスをシミュレートする場合は、最初にcd /
を実行し、自分がスーパーユーザーであることを確認します。また、これも同じです。
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
tar
がパスを相対パスに変換する理由は非常に明白です。1つは、元のソース以外の場所にアーカイブを復元する機能です。もう1つはセキュリティです。アーカイブを抽出し、そのファイルが現在の作業ディレクトリに表示されることを期待し、代わりにシステムファイル(または自分の作業)を誤って他の場所に上書きする可能性があります。
注:<を使用する場合div id = "bf636723f6">
オプション、tar
はアーカイブの絶対パス。したがって、抽出する前に大きなアーカイブの内容を確認することは常に重要です。
コメント
-
--strip-components=N
はここで役立つかもしれません。 - 私の場合、iv id = “23の代わりに
./foldername/
を記述する必要がありました。 16b5075f “>
、tarを作成したときに、tar -cvf santi.tar ./*
で作成し、"で作成したためだと思います。リストされている"タールこれはdrwxr-xr-x santi/santi 0 2016-04-11 09:42 ./foldername/
.gz
?-xvf
を-xzvf
に変更します(-z
オプション)、明らかにfoo.tar
からfoo.tar.gz
またはアーカイブに名前が付けられているもの。同じことが-j
(bz2)にも当てはまり、最近の一部のバージョンでは-J
(xz)にも当てはまります。それ以外の場合は、zcat foo.tar.gz | tar -xvf - …
のようなパイプラインも機能します。tar -tf foo.tar
およびtar -xf foo.tar ...
。
tar
がcat /proc/$(pidof tar)/fdinfo/0
を使用して、アーカイブのどこまで進んでいるかを確認できます(複数のcat /proc/$(pidof tar)/fdinfo/0
がある場合はコマンドを適応させますdiv id = “dbfd5e818e”>