Перемещение файлов из одного подкаталога в другой

Я пытался переместить файлы из одного каталога в другой и не работал. поэтому я искал и нашел ответ, который соответствует тому, что я хочу. Когда я запускаю его, модифицированный в мой каталог, он дает

Что хочу сделать:

${filename,,*}: плохая замена!

Это то, что я использовал:

for filename in *; do
  case "${filename,,*}" in
    b01.nii*)    mv "$filename" "$/Users/dave/Desktop/test/untitled_folder_*/str" ;;
    vol_01.nii*) mv "$filename" "$/Users/dave/Desktop/test/untitled_folder_*/rs" ;;
    *)           echo "don't know where to put $filename";;
  esac
done

Спасибо

1 ответ

У вас две ошибки:

основная проблема - команда for, переменная $filename содержит * а не настоящее имя файла. Вы должны использовать для имени файла в $(find . -name "*");do

второй случай:

Вы должны быть уверены в $filename значение переменной, т.е. в моей оболочке bash, вывод имени файла

./b01.nii 
./vol_01.nii 

лучше использовать следующий синтаксис в случае ./b01.nii* )

Я заменил ваш mv с echo просто чтобы проверить скрипт:

for filename in $(find . -name "*"); do

  case ${filename} in
    ./b01.nii* )    
                echo "$filename ${filename}/Users/dave/Desktop/test/untitled_folder_*/str" ;;
    ./vol_01.nii* ) 
                echo "$filename ${filename}/Users/dave/Desktop/test/untitled_folder_*/rs" ;;
    *)          
                echo "don't know where to put $filename";;
  esac
done

мой вывод

sh-4.3$ bash -f main.sh                                                                                                                                                                                                                                 
don't know where to put .                                                                                                                                                                                                                               
don't know where to put ./main.sh                                                                                                                                                                                                                       
don't know where to put ./.cg_conf                                                                                                                                                                                                                      
don't know where to put ./myfile_12345                                                                                                                                                                                                                  
don't know where to put ./myfile_17676                                                                                                                                                                                                                  
don't know where to put ./myfile_9898                                                                                                                                                                                                                   
don't know where to put ./Newfile.sh                                                                                                                                                                                                                    
./b01.nii ./b01.nii/Users/dave/Desktop/test/untitled_folder_*/str                                                                                                                                                                                       
./vol_01.nii ./vol_01.nii/Users/dave/Desktop/test/untitled_folder_*/rs 

С уважением

Claudio

Другие вопросы по тегам