
たとえば、ファイル番号1から始まるフォルダ番号1まで。
find /home/ -name '1_*_*_*_*_*_*.nii' -exec cp '{}' /home/1 ';'
答え1
このようなことを意味しますか(1〜100)?
for i in {1..100}; do
find /home/ -name "${i}_*_*_*_*_*_*.nii" -exec cp '{}' /home/${i} \;
done
答え2
ソースディレクトリに移動し、次のスクリプトを実行します。
for name in *.nii ; # find all files with a pattern and process its
do
directory="${name%%_*}/"
if [ ! -d "$directory" ]; then mkdir "$directory" ; fi # make directory if not exist
cp "$name" "$directory" ; # copy file into the directory
done
${name%%_*}
最長一致サフィックスパターンを削除します。この場合、最初の前のすべての記号になります_
。名前置換の結果1_2_3.nii
はですcp 1_2_3.nii 1/
。
このソリューションは、必要なフォルダを自動的に作成し、ファイルプレフィックスの範囲を提供する必要がないため、より柔軟です。