переименование файла с тем же именем, что и имя каталога - PullRequest
3 голосов
/ 17 января 2012

У меня структура каталогов выглядит следующим образом

dir----|
       |
       |--dir1\ some\ thing--result.pdf
       |
       |--dir2\ some\ thing--result.pdf
       |
       |--dir3\ some\ thing--result.pdf
       |

Имя файла в каждом подкаталоге является result.pdf.

Где в качестве каталогов dir1 dir2 dir3 имеют пробелы в своем имени.Что я не могу понять (я пишу bash-скрипт), как мне взять это имя каталога в переменной и переименовать в result.pdf

Я хочу переименовать каждый из этих файлов в result.pdf с тем же именем, что иdirectory name.pdf

   #!/bin/bash
    for i in *;do
    cd $i
    mv result.pd $i.pdf
    cd ..
    done

пробелы в именах каталогов создают проблемы. Как это преодолеть?

Ответы [ 2 ]

9 голосов
/ 17 января 2012

Попробуйте процитировать имена:

for i in *; do
  mv "$i/result.pdf" "$i/$i.pdf";
done
1 голос
/ 17 января 2012

Как насчет этого однострочного -

for i in *; do mv "$i/result.pdf" "$i/$i.pdf" ; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...