Отключение интерактивного режима команды cp (copy) (cp: overwrite?)
Кто-нибудь знает, как бы я отключил интерактивный режим при использовании cp?
Я пытаюсь рекурсивно скопировать каталог в другой, и для каждого файла, который перезаписывается, я должен ответить 'y'.
Я использую команду:
cp -r /usr/share/drupal-update/* /usr/share/drupal
Но меня просят подтвердить каждую перезапись:
cp: overwrite `./CHANGELOG.txt'? y
cp: overwrite `./COPYRIGHT.txt'? y
cp: overwrite `./INSTALL.mysql.txt'? y
cp: overwrite `./INSTALL.pgsql.txt'? y
...
Я использую версию Ubuntu Server Jaunty.
Спасибо!
3 ответа
Выполнение:
alias cp
Увидеть, если cp
был псевдоним cp -i
В этом случае запустите:
\cp -r /usr/share/drupal-update/* /usr/share/drupal
игнорировать псевдоним
cp -f не будет запрашивать подтверждение (это сила)
cp -fr /usr/share/drupal-update/* /usr/share/drupal
Да, причина того, что команда является интерактивной, заключается в том, что во многих распространенных оболочках по умолчанию копия имеет псевдоним, который можно найти, выполнив команду следующим образом:
alias cp
вывод будет
alias cp='cp -i'
Существуют разные способы ее решения. Решения:
Решение 1. Установите псевдоним для этого сеанса/постоянно в системе или выгрузите псевдоним для команды cp.
unset alias: удалит псевдоним для этой команды. unalias cp
или
сброс псевдонима:
alias cp='cp'
приведенная выше команда установит псевдоним для самого себя, а не дляcp -i
. Таким образом, вы можете запускать команды копирования столько, сколько захотите, без интерактивного режима только для этого терминального сеанса (временно). Чтобы сделать это постоянным, вы можете сбросить псевдоним в соответствующих файлах, например
Bash – ~/.bashrc
ZSH – ~/.zshrc
Fish – ~/.config/fish/config.fish
Решение 2. Запустить командой с обратной косой чертой.\
в начале команды копирования.
\cp foo.log /tmp/
Это фактически игнорирует псевдоним команды только для этой команды.
Вывод: Решение 1 полезно установить временным или постоянным, если вы собираетесь запускать много команд и хотите отключить интерактивный режим.
Решение2 хорошо, если у вас есть только параcp
только команды и не хотите сбрасывать псевдоним, это будет хорошо.