すべてのサブディレクトリの内容をそのサブディレクトリに移動します。

すべてのサブディレクトリの内容をそのサブディレクトリに移動します。

私が直面している問題は、何千ものサブディレクトリがあるディレクトリがあり、各サブディレクトリにはより多くのサブディレクトリが含まれており、すべてのサブディレクトリには内部にイメージがあることです。

私は何千ものを持っています:

/1056/7624/image.png

基本的にここから7624ディレクトリを削除して、次のような何千ものディレクトリを作成したいと思います。

/1056/image.png

試してみましたが、mv */*/* */*本当に驚きました。ターミナルコマンドを使用してこれを実行できますか?

私は50の画像を取得するために50のディレクトリに入る必要なく、このマルチファイルアップローダを使用できるようにしようとしています。

ベストアンサー1

for dir in */*; do
  if [[ -d "$dir" ]]; then
    ( 
      cd "$dir"
      mv -n * ..
      cd ..
      rmdir "$( basename "$dir" )"
    )
  fi
done

重複したファイルまたはサブディレクトリ名はいいえ移動したので、このような場合、ディープディレクトリはいいえまだファイルが含まれているため削除されました。

おすすめ記事