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


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]#

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

1

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


будет т его работа? Что означает -rv?
user4951

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

1

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

\cp -f hello /home3

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


0

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

yes | cp -f hello /home3

0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.