Linux初心者(学びたい!)として、私はブラウズして検索してきましたが、残念ながら私の問題に対する適切な解決策を思いつくことができませんでした. 別のディレクトリに移動したい(また作成する)いくつかのファイル(たくさん)を含むディレクトリがあります。もう少し詳しく言うと:
私のディレクトリは /data/myowndir/ で、ファイルにはそれぞれ次のような名前が付いています
- CV02_T1_[ランダム文字].REC
- PM03_T2_[ランダムな文字].PAR
次のように、各ファイルを (ファイル名の) それぞれの最初の 7 文字で、このディレクトリ内のサブディレクトリに移動したいと思います。
- CV02_T1_*.REC ---> /data/myowndir/CV02_T1
- CV02_T1_*.PAR ---> /data/myowndir/CV02_T1 (前回と同じディレクトリ)
- PM03_T1_*.REC ---> /data/myowndir/PM03_T1
- PV05_T2_*.PAR ---> /data/myowndir/PV05_T2
- 等
したがって、複数のファイルを移動して、これらの複数のディレクトリを作成したいと考えています。
ただし、2 つの制約があります。
- このディレクトリには、移動したくない拡張子 .nii のファイルも含まれています。
- 次に、一部のファイルには文字列sT13を含むファイル名があり、次のように別のディレクトリに移動したいと考えています。
PM03_T2_[ランダムな文字]sT13[ランダムな文字].PAR ---> /data/myowndir/PM03_struc
(したがって、ファイル名の最初の 5 文字と追加の文字列 [struc] のみが新しいディレクトリ名に追加されます)
誰でもこれを行う方法を知っていますか? スクリプトを作成する必要がありますか、それともコマンド ターミナルから実行できますか? 同様の質問に対する他の回答と、mv、mmv、find、while、for、rsync のマニュアル ページを読んでいます。しかし、私はそれをまとめる方法がわかりません。
編集:私の質問が暗示されているほど具体的すぎる場合は、最初に言い直してより明確にし、制約を削除させてください:
ファイル名の最初の部分に基づいて、複数のファイルをディレクトリから複数のサブディレクトリに移動するにはどうすればよいですか?