[linux] 확인없이 cp를 강제로 덮어 쓰는 방법

cp명령 을 사용하고 덮어 쓰려고합니다.

시도 cp -rf /foo/* /bar했지만 여전히 각 덮어 쓰기를 확인하라는 메시지가 표시됩니다.



답변

당신이 할 수있는 yes | cp -rf xxx yyy,하지만 내 gutfeeling 당신이 루트로 할 경우 말한다 – 당신 .bashrc이나 .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


답변

다른 답변의 일부가 언급했듯이, 당신은 아마 매핑하는 별칭 어딘가에 사용 cpcp -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명령 앞에 a 를 추가 할 수 있습니다 .

\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 -ru /zzz/zzz/* /xxx/xxx

그래도 기존 파일을 최신 파일로 업데이트합니다.