cp -f는 cp -i 별칭을 재정의할 수 없습니다.

cp -f는 cp -i 별칭을 재정의할 수 없습니다.

내 /home/user/.bashrc 파일에는 오류를 방지하기 위해 다음과 같은 별칭이 있습니다.

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

내가 하고 있는 일이 확실하다면 별칭을 사용하거나 덮어쓸 수 rm있으며 mv파일을 정말로 덮어쓸 것인지 묻지 않습니다.rm -fmv -f

문제는 명령어가 작동하지 않는데 , cp사용시 cp -f계속해서 질문이 뜹니다 .

이게 정상인가요? 기본적으로 별칭을 사용하고 명령 cp -i도 사용할 수 있으려면 어떻게 해야 합니까 ?cp -f

저는 Debian Wheezy 64비트를 사용하고 있습니다.

답변1

을 부여함으로써 cp -f해당 옵션은 기존 옵션에 단순히 추가됩니다.

즉, 가 있으면 alias cp='cp -i'명령의 cp 단어가 대체되어 cp -f을 얻게 됩니다 cp -i -f file1 file2.

별칭을 재정의하려면 다음을 수행하세요.

\cp -f file1 file2

명령 앞의 백슬래시는 앨리어싱을 비활성화합니다. 가독성을 높이기 command cp위해 대체를 사용할 수 있습니다 \cp.

답변2

비록 -f그것이 의미하는 바이지만이 모든 것에 대해 , cp이는 다음을 의미합니다.대상을 업데이트할 수 없는 경우 먼저 대상을 삭제하여 강제로 시도해 보세요..

mv및 의 경우 rm-f재정의하세요 -i. 하지만 의 경우 cp유틸리티의 동작을 변경하는 것이지 -f이 경우에는 그 반대가 아닙니다. -icp -i -f이는 의미가 있으며 다음을 의미합니다.사용자에게 대상이 존재하는지 물어보고, 덮어쓸 수 없으면 먼저 삭제하세요..

mv및 의 경우에도 rm사용자에게 보내는 경고 및 오류 메시지의 경우 추가 -f하는 것과 제거하는 것은 다릅니다 . -i예를 들어 rm non-existent-file오류는 보고되지만 rm -i -f non-existent-file오류는 보고되지 않습니다.

-i앞에서 언급했듯이 효과를 제거하려면 별칭 을 추가하는 대신 별칭을 비활성화하기 위해 제공된 솔루션을 사용해야 합니다 .-f

관련 정보