imhamburger 님의 블로그
리눅스(Linux) - 특정 파일 내용을 여러 파일에 복사하기, 파일명이 -l 파일 삭제하기 본문
1. 특정 파일 내용을 여러 파일에 복사하기
특정 파일 안에 있는 내용을 복사하여 여러 파일 안에 복사하고 싶었다. 하나씩 해도되지만 그건 너무 비효율적이라 생각했다.
아래 history.log 중 바이트가 0인 파일들은 빈 파일이다. 빈 파일 안에 다른 채워져있는 파일 하나를 골라 넣어보고자 한다.
아래 코드를 사용하면 된다.
cat {채워져있는 파일명} | tee {빈파일명1} {빈파일명2} {빈파일명3}
cat은 '내용을 보겠다.'라는 명령어이고,
tee는 표준 입력에서 읽은 내용을 표준 출력에도 사용하면서 파일에 저장하는 두가지를 동시에 사용하는 명령어이다.
이 말이 살짝 이해가 안가는데 예시로 살펴보자!
1-1. 표준 출력을 이용한 사용
echo {출력내용} | tee {파일이름}
위의 코드를 터미널에 똑같이 써보자.
'ham'이라는게 출력된 것을 볼 수 있다. 그리고 파일 리스트를 살펴보면 burger 라는 파일이 만들어져있다.
vi burger를 해보면,
'ham' 입력되어 있다.
1-2. EOF 표준입력을 이용
tee {파일명} << EOF
> 내용1
> 내용2
> 내용3
....
> EOF
EOF는 End Of File의 약자이며 EOF 사이에 적은 내용을 입력받아 명령을 수행한다. 사용 시작(EOF)을 알리고 끝날 때도 동일하게 EOF를 입력해야 종료된다.
예시로 보자면, burger라는 파일에 ham / bacon / onion 을 입력 후 종료하였다.
그리고 cat 을 통해 burger 파일의 내용을 보면, 입력한 내용이 저장된 것을 볼 수 있다.
따라서, tee는 표준 입력에서 읽은 내용을 표준 출력에도 사용하면서 파일에 저장하는 두가지를 동시에 사용하는 명령어이다.
보통 tee는 동일한 내용을 여러 개에 복사하고 싶을 때 많이 사용된다.
cat {채워져있는 파일명} | tee - a {파일명1} {파일명2} {파일명3}
-a 옵션을 사용하면 덮어쓰기가 아닌 이어쓰기가 된다. 만약, 파일 안에 있는 내용을 없애지않고 아래 이어서 쓰고싶다면 -a 를 꼭 붙여줘야 한다.
2. 파일명이 -l 인 파일 삭제하기
터미널로 뭘좀 하다가 -l 이라는 파일이 생겨버렸다!
그냥 rm로 삭제하면 되겠지 했는데... 계속 에러가 났다..
그래도 친절하게도 에러메세지를 읽어보니 해결 방법을 알려줬다.
분리할라면 '--'을 사용하라해서 사용해보았다.
그랬더니 에러없이 잘 삭제되었다.
다른 파일명이라도 '-'가 있어 계속 에러가 난다면 '--'을 이용해서 삭제하면 된다.
'리눅스(Linux)' 카테고리의 다른 글
리눅스(Linux) - 맥 Vim autoindention 추가하기 (0) | 2024.07.20 |
---|---|
리눅스(Linux) - nohup과 '&' 개념과 사용법 (0) | 2024.07.17 |
리눅스(Linux) - 쉘스크립트로 코드 작성하기 (0) | 2024.07.13 |
리눅스(Linux) - 빔(Vim) 에디터 명령어 grep 실습 - 02 (0) | 2024.07.09 |
리눅스(Linux) - 빔(Vim) 에디터 명령어 배우기 - 01 (0) | 2024.07.08 |