예를 들어, 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%%_*}
가장 긴 일치 접미사 패턴을 제거합니다 . 이 경우 first 이전의 모든 기호가 됩니다 _
. 이름 대체 결과 1_2_3.nii
는 입니다 cp 1_2_3.nii 1/
.
이 솔루션은 필요한 폴더를 자동으로 생성하고 파일 접두사 범위를 제공할 필요가 없으므로 더욱 유연합니다.