확인없이 cp를 강제로 덮어 쓰는 방법
cp
명령 을 사용 하고 강제로 덮어 쓰려고합니다.
을 (를) 시도 cp -rf /foo/* /bar
했지만 여전히 각 덮어 쓰기를 확인하라는 메시지가 표시됩니다.
할 수 yes | cp -rf xxx yyy
있지만 내 직감에 따르면 루트로 수행 .bashrc
하거나 to .profile
의 별칭이 cp
있으면 cp -i
대부분의 최신 시스템 (주로 RH 파생물)이 루트 프로파일에 대해 수행합니다.
alias
명령 프롬프트에서 실행 하여 기존 별칭 which cp
을 확인 하거나 cp
.
정의 된 별칭이있는 경우 실행 unalias cp
하면 현재 세션에서 해당 별칭이 제거됩니다. 그렇지 않으면 셸 프로필에서 제거 할 수 있습니다.
별칭을 일시적으로 무시하고 \
예를 들어 접두사를 붙여 별칭이 지정되지 않은 명령 버전을 사용할 수 있습니다.\cp whatever
이것은 아마도 cp
이미와 같은 별칭이 지정 되어 있기 때문일 것입니다 cp -i
. cp
직접 전화 는 작동해야합니다.
/bin/cp -rf /zzz/zzz/* /xxx/xxx
이 문제를 해결하는 또 다른 방법은 다음 yes
명령 을 사용하는 것입니다 .
yes | cp -rf /zzz/zzz/* /xxx/xxx
다른 답변의 일부가 언급했듯이, 당신은 아마 매핑하는 별칭 어딘가에 사용 cp
에 cp -i
또는 이와 유사한합니다. 백 슬래시를 앞에 붙여 별명없이 명령을 실행할 수 있습니다. 귀하의 경우에는
\cp -r /zzz/zzz/* /xxx/xxx
백 슬래시는 호출 한 모든 별칭을 일시적으로 비활성화합니다 cp
.
당신은 아마 매핑 별칭 곳이 cp
에 cp -i
; 기본 설정에서는 cp
덮어 쓸지 묻지 않기 때문입니다 . .bashrc
, .profile
등을 확인하십시오 .
cp 맨 페이지 참조 : -i
매개 변수가 지정된 경우에만 cp
실제로 덮어 쓰기 전에 메시지 가 표시됩니다 .
다음 alias
명령을 통해 확인할 수 있습니다 .
$ alias
alias cp='cp -i'
alias diff='diff -u'
....
별칭을 정의 해제하려면 다음을 사용하십시오.
$ unalias cp
다른 답변에서 언급했듯이이 cp
별칭이 cp -i
.
명령 \
앞에 를 추가하여 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 -u ...
cp --update ...
또한 작동합니다.
cp
일반적으로 이렇게 별칭이 지정됩니다
alias cp='cp -i' # i.e. ask questions of overwriting
덮어 쓰기를 원할 경우 다음을 사용하십시오.
/bin/cp <arguments here> src dest
나는 이것을 찾았다
'cp' -rf * /data/danalonso_testing/target/
이 명령도 사용할 수 있습니다.
cp -ru /zzz/zzz/* /xxx/xxx
그래도 기존 파일을 최신 파일로 업데이트합니다.
별칭없이 명령을 호출하는 또 다른 방법 command
은 bash 에서 내장 을 사용하는 것 입니다.
command cp -rf /zzz/zzz/*
-n은 "덮어 쓰지 말 것"이지만 그의 질문은 당신이 대답 한 것과 완전히 반대입니다.
이 확인을 피하기 위해 절대 경로로 cp 명령을 실행하면 별칭을 피할 수 있습니다.
/ bin / cp 소스 파일 대상
별칭을 그대로 전역 수준으로 유지하고 스크립트를 변경하려는 경우.
다음을 사용하십시오.
별칭 cp = cp
그런 다음 후속 명령을 작성하십시오.
I simply used unalias to remove the "cp -i" alias, then do the copy, then set back the alias. :
unalias cp
cp -f foo foo.copy
alias cp="cp -i"
Not the most beautiful code, but easy to set and efficient. I also check the alias is already set back with a simple
alias |grep cp
It is not cp -i
. If you do not want to be asked for confirmation, it is cp -n
; for example:
cp -n src dest
Or in case of directories/folders is:
cp -nr src_dir dest_dir
참고URL : https://stackoverflow.com/questions/8488253/how-to-force-cp-to-overwrite-without-confirmation
'Programing' 카테고리의 다른 글
MySQL에서 새 사용자를 만들고 하나의 데이터베이스에 대한 전체 액세스 권한을 부여합니다. (0) | 2020.10.03 |
---|---|
Java에서 YYYY-MM-DD HH : MI : Sec.Millisecond 형식으로 현재 시간을 얻는 방법은 무엇입니까? (0) | 2020.10.03 |
상위 페이지의 iframe에서 JavaScript 코드 호출 (0) | 2020.10.03 |
Akka의 좋은 사용 사례 [종료 됨] (0) | 2020.10.03 |
지원되지 않는 major.minor 버전 52.0 (0) | 2020.10.03 |