あるディレクトリから別のディレクトリにファイルをコピーし、各ファイルごとに新しいフォルダを作成し、ファイル名にちなんで名前を付けます。

あるディレクトリから別のディレクトリにファイルをコピーし、各ファイルごとに新しいフォルダを作成し、ファイル名にちなんで名前を付けます。

初めて質問させていただきます。最近コマンドラインをどんどん使いこなそうとしているのですが、この問題は私のスキルを超えています。

複数の部分からなるファイル転送をしたいです。

1) 複数のファイルなどを取得file_1.mdfile_2.mdoriginal_folderコピーしたいtarget_folder_master

2) 各ファイルを取得し、各ファイルの名前に基づいて新しいフォルダを作成します。たとえば、file_1その中にetcという名前のフォルダがあるはずです。target_folder_master

3) 各ファイルを対応する名前のフォルダにコピーできるようにしたい

4) 次に、ターゲットフォルダ内の各ファイルの名前を元の名前からに変更しますindex.md。たとえば、最終パスでfile_1.md名前を変更する必要があります。index.md~/file_1/index.md

これがすべて自動化されることを願っています。

答え1

これを試して:

for file in *.md; do
  mkdir "/path/to/target_folder_master/${file%.*}"
  mv "$file" "/path/to/target_folder_master/${file%.*}/index.md"
done

関連情報