답변:
오류 메시지에 대해 이야기하는 경우 비트 버킷으로 보내서이를 억제 할 수 있습니다.
cp ./src/*/*.h ./aaa 2>/dev/null
종료 코드 및 오류 메시지를 표시하지 않으려면 다음을 수행하십시오.
cp ./src/*/*.h ./aaa 2>/dev/null || :
cp
(원하는 경우). 쉘 내장을 true
대신 사용할 수 있으며 더 읽기 쉽습니다.
:
- '(콜론) GNU 배쉬 기본 제공된 다음`의 목적은 무엇인가?
cp
에없는 PATH
어떻게 든 ...)
당신은 라인을 따라 뭔가를 찾고 있습니다
if [ -e file ]
then cp file /somewhere
fi
(불행히도, -f
옵션은 당신이 찾고있는 드로이드가 아닙니다.)
글로브와 일치 시키려면 작동하지 않습니다. 사용하는 find
대신에, 예를 들면 :
find ./src -name \*.h -exec cp {} ./destination \;
set -e
간에 파일이 사라지면 스크립트가 중단됨). [
cp
오래된 질문이지만 여전히 다른 사람들과 관련이있을 수 있습니다. cp를 사용할 필요
가 없으면 rsync를 사용해보십시오.
소스에서 대상 디렉토리로 모든 파일을 복사하려면 다음을 실행하십시오.
rsync -avzh --ignore-errors /path/to/source /path/to/destination
Rsync는 Linux, Mac OS X 또는 FreeBSD와 같은 대부분의 유닉스 계열 시스템과 함께 제공됩니다.
--ignore-missing-args
. rsync -av --ignore-missing-args ./src/*/*.h ./aaa
이는 --ignore-errors
존재하지 않는 소스 파일과 관련된 오류 만 무시한다는 장점이 있습니다 . 으로 --ignore-errors
모든 오류가 무시되고 위험 할 수있다. 또한이 매개 변수가 최신 버전이므로 이전 버전의 rsync에는 없을 수 있습니다.
올바른 오류 상태를 강요 할 수 있습니다. 기능으로 :
$ cpalways () { cp $1 $2 2>/dev/null ; return 0 ; }
다음과 같이 주어진다 :
$ ls foo bar baz
ls: baz: No such file or directory
bar foo
일반 복사는 오류를 반환합니다. 종료 상태 1을 리턴합니다.
$ cp baz bar ; echo $?
cp: baz: No such file or directory
1
위의 cpalways () 함수를 사용하면 오류가 숨겨집니다.
$ cpalways baz bar ; echo $?
0
$ cpalways foo bar ; echo $?
0
$ cpalways baz bar ; echo $?
0
:
이 맥락에서 의미 하는 바를 설명하는 것이 좋을 것 입니다.