たとえば、zipファイルがありますmyArchive123.tar.gz
。その中には次のフォルダが含まれています。helloWorld
以下を使用して抽出するとtar -xf myArchive123.tar.gz
:helloWorld
ls
myArchive123.tar.gz
helloWorld
出力がファイル名から拡張子を引いたものと同じになりたいです.tar.gz
。つまり:
tar <magic paramaters> myArchive123.tar.gz
ls
myArchive123.tar.gz
myArchive123
cd myArchive123
ls
helloWorld
これは可能ですか?
- 私はアーカイブに何があるのか分かりません。フォルダでも複数のファイルでもかまいません。
- tarができない場合は、他のツールを使用できます。
- スクリプトに変換できるより長い形式も問題ありません。
編集する
その間、私はそれをやっているように見えるスクリプトを自分で書いていました(下記の回答を参照)。最も重要なことは、1行のコードでパッケージ化する必要があるということです。たとえば、次のようになります。
extract <file>
ベストアンサー1
$ tar -xf myArchive123.tar.gz --one-top-level
--トップレベル[= DIR]
すべてのファイルをDIRとして抽出するか、引数なしで使用する場合は、アーカイブのデフォルト名(--auto-compressで認識される標準の圧縮サフィックスの減算)に沿って名前付きサブディレクトリに抽出します。