名前が不明なフォルダの内容をディレクトリに移動する

名前が不明なフォルダの内容をディレクトリに移動する

私は次のようにデータを整理しました。

--parent_dir
   |
   --4Bz27go1c
      |
      -- foo.md
      -- bar.tar.gz
      -- baz.c
      ..

名前が既知の親ディレクトリと名前が不明な子ディレクトリ(ここでは で示されています)があります4Bz27go1c。現在空のサブディレクトリディレクトリを削除しながら、サブディレクトリのすべての内容をコピーして親ディレクトリに移動するにはどうすればよいですか。

明確に言えば、私が説明する最終結果は次のようになります。

 --parent_dir
    |
    -- foo.md
    -- bar.tar.gz
    -- baz.c
    ..

答え1

あなたが若い場合:bashシェルを使用してください。

shopt -s dotglob
mv -t .. *
rmdir $(pwd)

mvそうでない場合は、-t次のようにします。

shopt -s dotglob
mv * ..
rmdir $(pwd)

答え2

cd parent_dir &&
  set -- */ &&
  for dir do
    [ -L "$dir" ] && continue
    mv -i -- "$dir"* "$dir"..?* "$dir".[!.]*
    rmdir -- "$dir"
  done

関連情報