Відповіді:
Можна зробити yes | cp -rf xxx yyy, але мій gutfeeling говорить, що якщо ви робите це як root - ваш .bashrcабо .profileмає псевдонім cpдо cp -i, більшість сучасних систем (насамперед RH-похідних) роблять це для кореневих профілів.
Ви можете перевірити існуючі псевдоніми, запустивши aliasв командному рядку або which cpперевірити псевдоніми лише для cp.
Якщо у вас визначений псевдонім, запуск unalias cpбуде скасовувати це для поточного сеансу, інакше ви можете просто видалити його зі свого профілю оболонки.
Ви можете тимчасово обійти псевдонім і використовувати невідчужувану версію команди, префіксуючи її \, наприклад\cp whatever
¯\_(ツ)_/¯про це.
(primarily RH-derivatives)зауваження :)
unalias cpта скопіювавши все, що потрібно для копіювання, ви можете встановити псевдонім до його типового значення, виконавши alias cp='cp -i'. Після цього запустіть, alias cpщоб ви могли переконатися, що він повернувся до псевдоніму за замовчуванням.
Це, мабуть, викликано тим, cpщо вже відчужувалося щось подібне cp -i. Телефонувати cpбезпосередньо слід:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
Ще один спосіб обійти це використання yesкоманди:
yes | cp -rf /zzz/zzz/* /xxx/xxx
yesкоманду. Веселий. І коли-небудь я можу ним скористатися.
Як деякі інші відповіді заявили, ви , ймовірно , використовувати псевдонім де - небудь , яка відображає cpна cp -iабо що - щось подібне. Ви можете запустити команду без будь-яких псевдонімів, попередньо виконавши її з косою рисою. У вашому випадку спробуйте
\cp -r /zzz/zzz/* /xxx/xxx
Зворотна косою рисою тимчасово вимкне будь-які псевдоніми, які ви викликали cp.
cp, \cpвикличе команду cp. Це здається еквівалентом бігу command cp.
Ви , напевно, де - то псевдонім, відображення cpв cp -i; оскільки з налаштуваннями за замовчуванням cpне буде просити перезаписати. Перевірте своє .bashrc, своє .profileтощо
Див. Cp manpage : Тільки коли -iвказаний параметр, cpфактично підкаже перед перезаписом.
Ви можете перевірити це за допомогою aliasкоманди:
$ alias
alias cp='cp -i'
alias diff='diff -u'
....
Щоб визначити псевдонім, використовуйте:
$ unalias cp
Як було сказано в інших відповідях, це може статися, якщо cpце псевдонім cp -i.
Ви можете додати a \перед cpкомандою, щоб використовувати його без псевдоніму.
\cp -fR source target
За замовчуванням cpмає псевдонім до cp -i. Ви можете перевірити це, набрати aliasта побачити такі, як:
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
Для вирішення цієї проблеми просто скористайтеся /bin/cp /from /toкомандоюcp /from /to
cp зазвичай псевдонім так
alias cp='cp -i' # i.e. ask questions of overwriting
якщо ви впевнені, що хочете зробити перезапис, скористайтеся цим:
/bin/cp <arguments here> src dest
Я це знайшов
'cp' -rf * /data/danalonso_testing/target/
Джерело: /superuser/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851
Тому я багато в цьому стикаюся, тому що я тримаю cp непідвладно cp -iv, і я знайшов акуратний трюк. Виявляється, що поки -iі -nобидва скасовують попередні директиви перезапису, -fце не робить. Однак, якщо ви використовуєте, -nfце додає можливість очищення -i. Тому:
cp -f /foo/* /bar <-- Prompt
cp -nf /foo/* /bar <-- No Prompt
Досить акуратно так? / некропост
cp -u ...
cp --update ...
також працює.
Ще один спосіб викликати команду без псевдоніму - використовувати commandвбудований в bash.
command cp -rf /zzz/zzz/*
-n - "не перезаписати", але його питання абсолютно протилежне тому, на що ви відповіли.
Щоб уникнути цього підтвердження, ви можете просто запустити команду cp з абсолютним шляхом, це дозволить уникнути псевдоніму.
/ bin / cp вихідний файл призначення
Якщо ви хочете зберегти псевдонім на глобальному рівні таким, який є, і просто хочете змінити свій сценарій.
Просто використовуйте:
псевдонім cp = cp
а потім напишіть свої подальші команди.
Я просто використав Unalias, щоб видалити псевдонім "cp -i", потім зробіть копію, а потім відновіть псевдонім. :
unalias cp
cp -f foo foo.copy
alias cp="cp -i"
Не найкрасивіший код, але простий у налаштуванні та ефективності. Я також перевіряю, псевдонім вже встановлений з простим
alias |grep cp
Це не так cp -i. Якщо ви не хочете, щоб вас просили підтвердження, це cp -n; наприклад:
cp -n src dest
Або у випадку каталогів / папок:
cp -nr src_dir dest_dir
cp -iсистемою, це означає, що вони намагаються подолати типовий і примусити перезаписати. Це звучить , як ви , можливо, переплутав , що за те , що пропонований синтаксис, але -nбуде запобігти перезапис.