Как копировать или перемещать файлы без необходимости перезаписи?

8

Что я пробовал:

root@host [/home1]# cp -f hello /home3
cp: omitting directory `hello'
root@host [/home1]# cp -rf hello /home3
cp: overwrite `/home3/hello/.buildpath'? y
cp: overwrite `/home3/hello/.bash_logout'? y
cp: overwrite `/home3/hello/.project'? ^C

Они всегда спрашивают меня, хочу ли я перезаписать. Использование mv тоже не работает. И что я должен делать?

Другие вещи, которые я пробовал:

root@host [/home1]# cp -rf hello /home3
cp: overwrite `/home3/hello/.buildpath'? y
cp: overwrite `/home3/hello/.bash_logout'? y
cp: overwrite `/home3/hello/.project'? ^C
root@host [/home1]# cp -force hello /home3
cp: invalid option -- 'o'
Try `cp --help' for more information.
root@host [/home1]# cp --remove-destination hello /home4
cp: omitting directory `hello'
root@host [/home1]# cp --remove-destination hello /home3
cp: omitting directory `hello'
root@host [/home1]# cp --remove-destination -r hello /home3
cp: overwrite `/home3/hello/.buildpath'? ^C
root@host [/home1]#
user4951
источник
2
Не могли бы вы дать вывод alias cp?
Рафаэль Аренс
2
Также type cpкак и ls -lна одном из целевых файлов может быть предоставлена ​​полезная информация.
CVn
cp это копия. Хорошо, это может быть псевдоним. Так что за команда?
user4951

Ответы:

13

cpПохоже, либо псевдоним для чего-то, что вызывает проблемы, или это функция. Вы можете удалить псевдоним / функцию:

unalias cp
unset -f cp

Если вы хотите просто переопределить это прямо сейчас, вы можете использовать commandкоманду для переопределения любых определений псевдонимов / функций:

command cp [...]

Если вы хотите полностью удалить это, вам, вероятно, придется поискать файлы запуска bash.

Крис Даун
источник
3
\cpтакже позволит избежать псевдонима.
sendmoreinfo
Да, вы правы which cp => alias cp='cp -i; /bin/cp. Спасибо Амазонка!
Джерри
8

Для принудительной перезаписи без запроса вы должны использовать команду mv и опцию "-f", используйте man, чтобы увидеть опции.

человек мв:

   -f, --force
          do not prompt before overwriting

Пример:

mv -f test.tmp test.txt
sinkmanu
источник
1

Попробуйте cp -rv / sourcefileordirectory / папку назначения

Rockhound
источник
будет т его работа? Что означает -rv?
user4951
-rvозначает рекурсивный и многословный. Так что это должно скопировать файлы и подпапки и вывести прогресс в терминал.
JNat
1

У вас, вероятно, есть псевдоним для cp. Вы можете переопределить этот псевдоним, выполнив:

\cp -f hello /home3

Преимущество этого состоит в том, что вы не меняете настройки псевдонимов, так как переопределяют его только для этого вызова.

niglesias
источник
0

Вы можете использовать yes, который предназначен для такого рода вещей. Он автоматически распечатает yи ответит на эти запросы для вас:

yes | cp -f hello /home3
Дежи Кадри
источник
0

просто выполните, alias cp=cpи он перезапишет цель, не спрашивая в этом сеансе. Если вы хотите сохранить его как стандартное поведение, сохраните его в своем ~/.bashrc.

user2516278
источник