cp를 중지하는 방법 : './xxx'덮어 쓰기? 신속한


19

cp 명령이 덮어 쓸지 묻는 메시지를 표시하지 않으려면 어떻게해야합니까? 터미널로 계속 돌아 가지 않고도 모든 파일을 덮어 쓰고 싶습니다. 이들은 큰 파일이므로 완료하는 데 시간이 걸립니다.

-f 옵션을 사용해 보았습니다. 덮어 쓸 것인지 묻습니다.

   -f, --force
          if an existing destination file cannot be opened, remove it and
          try again (redundant if the -n option is used)

cp -f /media/somedir/somefiles* .  
cp: overwrite `./somefilesxxx'? y

답변:


17

을 호출하는 것 외에도 /bin/cp다음 중 하나를 수행 할 수 있습니다.

\cp -f ...
command cp -f ...

그러나 나는 당신이 cp -i또는 같은 별명을 사용하는 것에 익숙해 져서는 안된다는 것에 동의합니다 rm -i. 다른 껍질에 앉으면 안전망이 의존하지 않을 것입니다.


1
A whereis cp는 명령이 어디에 있는지 보여줍니다. 따라서 별칭 대신 실제 명령을 호출 할 수 있습니다.
AnthonyB

12

이 솔루션을 본 후. bashes alias 기능이 문제를 일으키는 것으로 나타났습니다. http://systembash.com/content/prompt-to-confirm-copy-even-with-cp-f/

which cp  
alias cp='cp -i'
/bin/cp
which cp | grep cp
alias cp='cp -i'
/bin/cp

그는 추천한다

unalias cp

여전히이 인스턴스에 적용하고 싶지 않은 별칭을 유지하고 싶습니다. 내 해결책은 바이너리 경로를 전체 경로와 함께 사용하여 bash 별칭 기능이 대신하지 않는 것입니다. 잘 작동합니다.

/bin/cp -f /media/somedir/somefiles* .  

4

불행히도 리눅스에서 copy "cp"명령에는 "y"또는 "n"응답으로이 질문에 자동으로 대답 할 수있는 옵션이 없습니다. 수행하려는 작업에 따라이 문제에 대한 솔루션이 두 가지 이상 있습니다. 한 가지 해결책은 Unix "yes"명령을 사용하는 것입니다. 이 명령은 죽일 때까지 문자열을 반복적으로 출력합니다.

대상 디렉토리의 모든 파일을 덮어 쓰려면 "yes"명령을 사용하여 "y"로 모든 질문에 대답 할 수 있습니다. "y"는 기본값이므로 지정할 필요가 없습니다.

yes | cp source/*.txt destination/.

대상 디렉토리에있는 파일을 덮어 쓰지 않으려면 "yes"명령을 사용하여 "n"이없는 모든 질문에 대답 할 수 있습니다.

yes n | cp source/*.txt destination/.

"yes"명령에 대한 자세한 정보는 "man yes"를 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.