이 두 명령을 차례로 실행했습니다.
cat a.log >> b.log
rm -r a.log
여기서 무슨 일이 일어나고 있는 걸까요? 왜?고양이여기에 사용됩니까? ~에 대한>> 로고? 무엇인가요 -r(재귀) 플래그사용하고 있나요?
답변1
수정된 코드를 고려하면,
cat a.log >> b.log rm -r a.log
cat
파일 목록을 복사 하거나표준 입력-
아무것도 제공되지 않거나 목록에 대시( )가 포함된 경우표준 출력. 바라보다man cat
이는
>>
명령의 출력을 지정된 파일에 추가하는 표준 셸 리디렉션 연산자입니다. 예제에서 이 명명된 파일은 입니다b.log
. 그렇지 않은 경우man bash
선호하는 셸에 대한 설명서를 참조하거나 검토하세요bash
.쉘의 제어 및 리디렉션 연산자는 무엇입니까?이
rm
명령은 (거의) 무조건적으로 파일을 삭제합니다a.log
. 파일 삭제를 시도하기 때문에 이-r
플래그는 관련이 없으며 무시됩니다. 대화형 세션에서 실행되는 경우 명령은 사용자에게 파일에 쓰기 권한이 없는지 확인하도록 요청합니다. 바라보다man rm
이 코드를 작성하면 다음과 같이 구성할 수 있습니다.
cat a.log >> b.log && rm -f a.log
a.log
여기에서는 cat
해당 내용이 대상 파일에 성공적으로 추가된 경우에만 파일이 삭제됩니다 b.log
.