Próbuję użyć cp
polecenia i wymusić zastąpienie.
Próbowałem cp -rf /foo/* /bar
, ale wciąż pojawia się monit o potwierdzenie każdego zastąpienia.
linux
command-line
overwrite
cp
thiyagu114
źródło
źródło
¯\_(ツ)_/¯
o tym.(primarily RH-derivatives)
uwagę :)unalias cp
i skopiowaniu wszystkiego, co chcesz skopiować, możesz przywrócić domyślny alias, robiąc toalias cp='cp -i'
. Następnie uruchom,alias cp
aby sprawdzić, czy wrócił do domyślnego aliasu.Jest to prawdopodobnie spowodowane tym,
cp
że jest już aliasowany do czegoś podobnegocp -i
.cp
Bezpośrednie dzwonienie powinno działać:Innym sposobem obejścia tego jest użycie
yes
polecenia:źródło
yes
polecenie. Wesoły. I pewnego dnia mogę go użyć.Jak niektórzy z pozostałych odpowiedzi stwierdziły, prawdopodobnie gdzieś użyć aliasu, który mapuje
cp
docp -i
lub coś podobnego. Możesz uruchomić polecenie bez żadnych aliasów, poprzedzając je odwrotnym ukośnikiem. W twoim przypadku spróbujOdwrotny ukośnik tymczasowo wyłączy wszystkie aliasy, które wywołałeś
cp
.źródło
cp
,\cp
wywoła poleceniecp
. Wydaje się, że jest to odpowiednik działaniacommand cp
.Prawdopodobnie masz gdzieś alias, odwzorowujący
cp
nacp -i
; ponieważ przy ustawieniach domyślnychcp
nie poprosi o zastąpienie. Sprawdź.bashrc
swoje.profile
itp.Zobacz cp manpage : Tylko wtedy, gdy
-i
parametr jest określony,cp
faktycznie zostanie wyświetlony monit przed nadpisaniem.Możesz to sprawdzić za pomocą
alias
polecenia:Aby zdefiniować alias, użyj:
źródło
Jak podają inne odpowiedzi, może się to zdarzyć, jeśli
cp
jest to pseudonimcp -i
.Możesz dołączyć
\
przedcp
poleceniem, aby użyć go bez aliasu.źródło
Domyślnie
cp
ma alias docp -i
. Możesz to sprawdzić, wpisaćalias
i możesz zobaczyć niektóre z nich:Aby rozwiązać ten problem, po prostu użyj
/bin/cp /from /to
poleceniacp /from /to
źródło
możesz również użyć tego polecenia:
cp -ru /zzz/zzz/* /xxx/xxx
zaktualizuje twój istniejący plik nowszym.
źródło
cp
jest zwykle aliasowany w ten sposóbjeśli jesteś pewien, że chcesz wykonać nadpisanie, użyj tego:
źródło
znalazłem to
Źródło: /superuser/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851
źródło
Więc często się w to wpakowałem, ponieważ wciąż mam alias do cp
cp -iv
i znalazłem fajną sztuczkę. Okazuje się, że chociaż-i
i-n
oba anulują poprzednie dyrektywy zastępujące,-f
to nie. Jednak jeśli-nf
go użyjesz , dodasz możliwość wyczyszczenia-i
. Więc:Całkiem nieźle, prawda? / necropost
źródło
działa również.
źródło
Innym sposobem na wywołanie polecenia bez aliasu jest użycie
command
wbudowanego w bash.command cp -rf /zzz/zzz/*
źródło
-n jest „nie do zastąpienia”, ale jego pytanie jest całkowicie przeciwne do tego, na co odpowiedziałeś.
Aby uniknąć tego potwierdzenia, wystarczy uruchomić polecenie cp z bezwzględną ścieżką, uniknie to aliasu.
Miejsce docelowe pliku źródłowego / bin / cp
źródło
Jeśli chcesz zachować alias na poziomie globalnym i po prostu chcesz zmienić skrypt.
Po prostu użyj:
alias cp = cp
a następnie napisz komendy uzupełniające.
źródło
Po prostu użyłem unalias do usunięcia aliasu „cp -i”, a następnie wykonałem kopię, a następnie cofnąłem alias. :
Nie jest to najpiękniejszy kod, ale łatwy do ustawienia i wydajny. Sprawdzam też, że alias jest już ustawiony za pomocą prostego
źródło
Nie jest
cp -i
. Jeśli nie chcesz być proszony o potwierdzenie, jest tocp -n
; na przykład:Lub w przypadku katalogów / folderów jest:
źródło
cp -i
, co oznacza, że próbowali przezwyciężyć domyślne ustawienie i wymusić nadpisanie. To brzmi jak można mylić, że za to, że zasugerował składnia, ale-n
będzie zapobiegać zastępującego.