質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

659閲覧

フォルダの内容を一階層上に移動させるコマンドを知りたい

Funa-teratail

総合スコア13

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2023/03/09 08:24

tarコマンドで.tar.gzを解凍するとフォルダにしまわれますが、そのフォルダの中身を一階層上に移動させるコマンドが知りたいです。

例えば、

folder1 └── folder2 ├── index.html ├── style.css └── script.js

だったとしたら、

folder1 ├── folder2 ├── index.html ├── style.css └── script.js

に変更したいです。

開発環境: Replit, Linux

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

tarコマンドで.tar.gzを解凍するとフォルダにしまわれますが、

そうではなくて、「フォルダーにしまわれたファイル」をtarで固めた物を展開すると、元通りフォルダーに入った形で展開されます。
「フォルダーに入っていないファイル」をtarで固めた物を展開すると、フォルダーに入ってない状態で展開されます。

展開した後で移動したいのなら、

sh

1cd folder1/folder2 2mv * ..

です。ファイル名が.で始まるファイルがある場合は、追加で何らかの指定をします。

投稿2023/03/09 08:38

otn

総合スコア85505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Funa-teratail

2023/03/09 09:12

動きました 解凍したあとに移動させるという発想がなかったです... ありがとうございます
otn

2023/03/09 09:14

> 解凍したあとに移動させるという発想がなかったです... それ以外のどういうことを考えていたのでしょうか? 質問からは読み取れません。
Funa-teratail

2023/03/10 22:39

tarコマンドでの解凍時に内部のフォルダをいじくって展開すると思っていました。
otn

2023/03/11 02:42

「フォルダの中身を一階層上に移動させるコマンドが知りたい」 じゃなくて、 「tarで展開時にディレクトリーを無視するオプションが知りたい」 という事でしたか。 「--strip-components 数」というオプションがあります。 tarの中身(tar tf ~~.tar.gz で表示されるもの)が、 folder2/index.html folder2/style.css folder2/script.js であったものを、--strip-components 1 と付けると、上位一階層のディレクトリーを無視して、 index.html style.js script.js であったとして、展開されます。 もし、質問の例が、 foldr1/folder2/index.html foldr1/folder2/style.css foldr1/folder2/script.js であったものを folder1/index.html folder1/style.css folder1/script.js として展開したいと言う意味なのであれば、そういう途中を抜かすことは出来ないので、展開後に移動するしかないです。 もしくは、 mkdir folder1 tar xf ~~.tar.gz -C folder1 --strip-components 2 のように、folder1は自分で作った上で、その中に(-C folder1)、2階層無視して(--strip-components 2)展開するか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問