[解決済み] フォルダ構造のないファイルをtarで展開する方法
2023-05-19 23:50:58
質問
以下のような構造のtar.gzファイルがあります。
folder1/img.gif
folder2/img2.gif
folder3/img3.gif
画像ファイルをフォルダ階層を無視して抽出したいので、抽出結果は以下のようになります。
/img.gif
/img2.gif
/img3.gif
私はUnixとPHPの組み合わせでこれを行う必要があります。これは、指定されたディレクトリにそれらを抽出するために動作しますが、フォルダの階層を保持するために、私がこれまでに持っているものです。
exec('gtar --keep-newer-files -xzf images.tgz -C /home/user/public_html/images/',$ret);
どのように解決するのですか?
この場合 --strip-components という tar のオプションがあります。
--strip-components count (x mode only) Remove the specified number of leading path ele- ments. Pathnames with fewer elements will be silently skipped. Note that the pathname is edited after checking inclusion/exclu- sion patterns but before security checks.
あなたと似たような構造のtarファイルを作成します。
$tar -tf tarfolder.tar
tarfolder/
tarfolder/file.a
tarfolder/file.b
$ls -la file.*
ls: file.*: No such file or directory
次に、することによって抽出される。
$tar -xf tarfolder.tar --strip-components 1
$ls -la file.*
-rw-r--r-- 1 ericgorr wheel 0 Jan 12 12:33 file.a
-rw-r--r-- 1 ericgorr wheel 0 Jan 12 12:33 file.b
関連
-
Manjaro linuxでマウスの速度を設定する方法は?Manjaroのマウスのカーソル速度を設定する方法に関するヒント
-
[解決済み] Linuxでデータファイルから最初の列(実際には行名)を削除する方法は?
-
[解決済み] cronは内部でどのようにジョブをスケジューリングしているのですか?
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み] sudoを使わずにnpmがエラーを投げるのを修正する方法
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド
-
[解決済み] ファイルやフォルダのディレクトリを、ディレクトリ自体を含めずにtarで圧縮するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ゼロからLinuxのisoイメージを作る方法(グラフィックチュートリアル)
-
Linuxにおけるxinetdサービスの管理方法に関するケーススタディ
-
Linuxでファイルパーミッションを与えるには?Linuxでファイルに実行可能なパーミッションを追加するためのヒント
-
Vmware 16仮想マシンを開けない場合、ファイルをローカルにコピーする方法は?
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
Kali Linuxのデフォルトのひげメニューアイコンを変更する方法は?
-
Deepin20システムのフォントを設定するには?Deepin端末のフォントサイズを設定する方法
-
ubuntu 12.04 eclipse でプログラム g++ がパスに見つからなかったと報告される。
-
[解決済み] 標準エラー出力を /dev/null にリダイレクトする。
-
[解決済み] Linuxのディレクトリ内のファイルを再帰的にカウントする