すべてのサブディレクトリの内容を1レベル上に移動

すべてのサブディレクトリの内容を1レベル上に移動

私のトップレベルディレクトリにはいくつかのサブディレクトリが含まれています。

  • af
  • ar
  • ca
  • cs
  • da
  • de
  • el
  • en
  • ...(もっとあります)

各ディレクトリはまったく同じ構造を持っています。これには2つのディレクトリが含まれています。

  • v2.3.0
  • v3.0.0

*/v2.3.0/*.phpすべてのファイルをディレクトリから移動する必要があるため、次から始めます。

  • af
    • v2.3.0
      • file1.php
      • file2.php
    • v3.0.0

これに関して:

  • af
    • file1.php
    • file2.php

答え1

最も簡単な解決策は次のとおりです。

for dir in *; do mv "$dir"/v2.3.0/* "$dir"/; done

ファイルを移動するには、次のようにphp使用します。

for dir in *; do mv "$dir"/v2.3.0/*php "$dir"/; done

トップレベル(ディレクトリだけでなく)にファイルがある場合にエラーメッセージを防ぐには、次の手順を実行します。

for dir in *; do [ -d "$dir" ] && mv "$dir"/v2.3.0/* "$dir"/; done

関連情報