Jak zmusić cp do nadpisania bez potwierdzenia
Próbuję użyć komendy cp
i wymusić nadpisanie.
Próbowałem cp -rf /foo/* /bar
, ale wciąż jestem poproszony o potwierdzenie każdego nadpisania.
14 answers
Możesz zrobić yes | cp -rf xxx yyy
, ale moje przeczucie mówi, że jeśli robisz to jako root - Twój .bashrc
lub .profile
ma alias cp
do cp -i
, większość nowoczesnych systemów (głównie pochodne RH) robi to dla profili root.
Można sprawdzić istniejące aliasy, uruchamiając alias
w wierszu polecenia lub which cp
, aby sprawdzić aliasy tylko dla cp
.
Jeśli masz zdefiniowany alias, uruchomienie unalias cp
usunie go dla bieżącej sesji, w przeciwnym razie możesz po prostu usunąć go z powłoki profil.
Możesz tymczasowo ominąć alias i użyć nie aliasowanej wersji polecenia przez prefiks \
, np. \cp whatever
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-21 11:45:52
Jest to prawdopodobnie spowodowane tym, że cp
jest już aliased do czegoś takiego jak cp -i
. Wywołanie cp
bezpośrednio powinno działać:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
Innym sposobem obejścia tego problemu jest użycie komendy yes
:
yes | cp -rf /zzz/zzz/* /xxx/xxx
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 11:20:41
Jak stwierdziły inne odpowiedzi, prawdopodobnie używasz gdzieś aliasu, który mapuje cp
na cp -i
lub coś podobnego. Polecenie można uruchomić bez aliasów, poprzedzając je odwrotnym ukośnikiem. W Twoim przypadku spróbuj
\cp -r /zzz/zzz/* /xxx/xxx
Ukośnik wsteczny tymczasowo wyłączy wszystkie aliasy, które wywołałeś cp
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-13 11:30:28
Prawdopodobnie masz gdzieś alias, mapowanie cp
na cp -i
; ponieważ przy domyślnych ustawieniach, cp
nie poprosi o nadpisanie. Sprawdź swoje .bashrc
, twoje .profile
itp.
Zobacz CP manpage : tylko wtedy, gdy podany jest parametr -i
, cp
wyświetli monit przed nadpisaniem.
Możesz to sprawdzić za pomocą polecenia alias
:
$ alias
alias cp='cp -i'
alias diff='diff -u'
....
Aby zdefiniować alias, użyj:
$ unalias cp -i
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-07 08:46:33
Jak stwierdziły inne odpowiedzi, może się to zdarzyć, jeśli cp
jest aliasem cp -i
.
Możesz dodać \
przed poleceniem cp
, Aby użyć go bez aliasu.
\cp -fR source target
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-29 02:19:26
Domyślnie {[1] } ma aliase na cp -i
. Możesz to sprawdzić, wpisz alias
i możesz zobaczyć takie jak:
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'
Aby rozwiązać ten problem wystarczy użyć /bin/cp /from /to
zamiast cp /from /to
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-13 07:05:45
cp
jest zwykle aliased tak
alias cp='cp -i' # i.e. ask questions of overwriting
Jeśli jesteś pewien, że chcesz wykonać nadpisanie, użyj tego:
/bin/cp <arguments here> src dest
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-19 14:07:18
Możesz również użyć tego polecenia:
cp -ru /zzz/zzz/* /xxx/xxx
Zaktualizowałby istniejący plik o nowszy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-19 09:28:16
Innym sposobem wywołania komendy bez aliasu jest użycie command
wbudowanego w bash.
command cp -rf /zzz/zzz/*
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-10 18:34:59
-n to "nie nadpisywać", ale jego pytanie jest zupełnie przeciwne temu, za co odpowiedziałeś.
Aby uniknąć tego potwierdzenia, możesz po prostu uruchomić polecenie CP z absolutną ścieżką, uniknie ona aliasu.
/Bin/CP sourcefile destination
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-20 16:03:46
cp -u ...
cp --update ...
Również działa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-13 11:39:23
Jeśli chcesz zachować alias na poziomie globalnym tak jak jest i po prostu chcesz zmienić swój skrypt.
Po prostu użyj:
Alias cp=CP
A następnie napisz swoje kolejne polecenia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-11 07:29:08
Po prostu użyłem unialias, aby usunąć alias "cp-i", następnie wykonać kopię, a następnie ustawić z powrotem alias. :
unalias cp
cp -f foo foo.copy
alias cp="cp -i"
Nie najpiękniejszy kod, ale łatwy do Ustawienia i wydajny. Sprawdzam również, że alias jest już ustawiony za pomocą prostego
alias |grep cp
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-25 10:11:49
Nie jest cp -i
. Jeśli nie chcesz zostać poproszony o potwierdzenie,
jest to cp -n
; na przykład:
cp -n src dest
Lub w przypadku katalogów / folderów to:
cp -nr src_dir dest_dir
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-19 14:02:39