Проблема с переименованием псевдонима Ubuntu

В моей системе установлена ​​Ubuntu 14.04 Trusty Tahr.

Я создал следующий псевдоним в моем файле ~ / .bashrc, чтобы сделать рекурсивное переименование каталогов в текущей папке, как простую в использовании короткую команду.

renamedirs() {
    find . -depth -type d -not -name '.' -exec rename 's/$1/$2/' {} +
}
alias rendirs=renamedirs

Я уже сделал source ~/.bashrc вещь.

Но когда я запускаю этот псевдоним ниже,

rendirs Olddir Newdir

я получаю следующую ошибку:

Use of uninitialized value $1 in regexp compilation at (eval 33) line 1.
Use of uninitialized value $2 in substitution iterator at (eval 33) line 1.
Use of uninitialized value $1 in regexp compilation at (eval 34) line 1.
Use of uninitialized value $2 in substitution iterator at (eval 34) line 1.
...
...

Может кто-нибудь дать мне знать, что здесь не так.

0
задан 25 June 2016 в 00:10

1 ответ

Bash имеет значение между одинарными кавычками '...' и двойные кавычки "...".

Одинарные кавычки заставляют вложенный текст быть взятым буквально, в то время как двойные кавычки позволяют различные интерпретации строки как переменное расширение.

необходимо использовать двойные кавычки, если Вы имеете $x - как переменные Bash в Вашей строке, которая Вы хотите быть расширенными.

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

rendirs() {
    find . -depth -type d -not -name '.' -exec rename "s/$1/$2/" {} +
}
0
ответ дан 25 June 2016 в 00:10
  • 1
    Я пытаюсь сделать то же с PyCharm. Добрался "sun-awt-X11-XFramePeer", "jetbrains-pycharm-ce" как вывод для шага 6. Я использовал StartupWMClass=jetbrains-pycharm-ce, и это работает. – d4nyll 12 January 2018 в 04:59

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

Похожие вопросы: