Скопіювати наявні файли без підтвердження?


18

Мені потрібно скопіювати і перезаписати велику кількість файлів, я використав таку команду:

# cp -Rf * ../

Але тоді, коли файл із однаковою назвою існує в цільовій папці, я отримую це питання:

cp: overwrite `../ibdata1'? 

Проблема полягає в тому, що у мене є близько 200 файлів, які будуть перезаписані, і я не думаю, що натискання Y then Enter200 разів - це правильний спосіб зробити це.

Отже, який правильний шлях до цього?

Відповіді:


38

Ви можете це зробити yes | cp -rf myxx, або якщо ви робите це як root - ваш .bashrc або .profile має псевдонім cp до cp -i, більшість сучасних систем роблять це для кореневих профілів.

Ви можете тимчасово обійти псевдонім і використовувати непредмещену версію команди, префіксуючи її за допомогою \, наприклад \ cp як завгодно


4
+1 для вказівки на те, як обійти псевдонім. Спокусився -1 на грубе рішення.
Hennes

5
+! для функції yesтруби - дуже зручно!
Ендрю Ньюбі

14

Ви розумієте, що RHEL та CentOS намагалися захистити початківців користувачів, встановивши псевдоніми для кореневого користувача, щоб запобігти випадковому перезапису та видаленню файлів?

alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'

-iПеремикач , що вимагає підтвердження при зміні або видаленні існуючих файлів. Оскільки розширення псевдоніму відбувається перед виконанням команди, навіть використання --force -f комутатора все одно вимагатиме підтвердження.

Ви можете видалити псевдонім назавжди, відредагувавши /root/.bashrcфайл, вилучивши псевдонім протягом тривалості сеансу з unalias cp однією командою або використовуючи один із:

  • використовувати повний шлях /bin/cp
  • використовувати лапки "cp"або 'cp'навколо команди
  • використовувати ключове слово, наприклад command cp
  • уникнути команди \cp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.