[Linux] 5. 파일 조작의 기본
이 글은 '모두의 리눅스'라는 책을 읽고 익힌 내용을 정리하기 위해 작성했습니다. 이해하는 과정에서 오류가 있거나 책의 내용과 다를 수 있으니 이 점 유의하며 읽어주시기 바랍니다.
이번 장은 파일 조작의 기본이다. 파일 조작은 리눅스 사용의 기본 중 기본이라고 할 수 있다. 결국 컴퓨터는 파일을 사용하는 경우가 대부분이니 어쩔 수 없이 중요한 것 같다.
1. 디렉터리 만들기
mkdir [옵션] <디렉터리 이름>
이때 옵션은 생략 가능하며 이미 있는 이름의 디렉터리는 생성할 수 없다.
중첩된 디렉터리를 만들고 싶다면 p 옵션을 사용하면 된다.
mkdir -p hello/makedir/practice
만약 위의 코드에서 -p가 없고 makedir이라는 폴더가 없으면 오류가 날 것이다.
2. 파일 만들기
touch 명령어를 이용해 만들 수 있다. 이때 파일을 여러개 한꺼번에 만들 수도 있다.
touch newfile
touch file1 file2 file3
touch 명령어는 타임스태프를 갱신하기 위한 명령어 중 하나라서 만약 중복된 파일을 만든다고 해도 처음 파일의 내용이 지워지지 않는다.
3. 파일 삭제하기
rm 명령어를 사용하여 삭제할 수 있다. touch와 마찬가지로 여러 파일을 한꺼번에 삭제할 수도 있다. 만약 여러개의 파일을 지우고 싶다면 한꺼번에 적어주면 된다.
4. 디렉터리 삭제하기
1) rm 명령어로 디렉터리를 삭제하려고 하면 에러메시지가 출력되는 경우가 있다. 왜냐하면 아직 디렉터리 안에 내용이 남아 있기 때문이다. 그래서 재귀적으로 안의 모든 파일을 지울 수 있는 -r 옵션을 넣어주어야 한다.
rm -r dir1
주의할 점은 안의 파일을 모두 지우기 때문에 안에 중요한 파일이 있는지 꼭 확인을 해보아야한다.
2) rmdir 이라는 명령어로 빈디렉터리를 삭제할 수 있다. 만약 디렉터리가 비어있지 않으면 에러가 난다. 간혹 우리 눈에는 아무 파일이 안보이지만, 실제로 숨겨진 파일이 있어 작동이 안되는 경우도 있으니 꼭 ls -a로 확인을 해보는 것이 좋다.
5. 파일 내용 출력하기
1) cat 명령어를 통해 파일 내부의 내용을 출력할 수 있다.
cat [option] <filename>
이때 명령어의 인자로 여러 파일을 지정하면 내용을 순차적으로 출력한다. (cat 명령어가 concatenate에서 온 단어라고 생각한다면 당연한 기능일지도 모른다.)
-n 옵션으로 행번호를 출력할 수도 있다.
+) 파일이름을 지정하지 않으면 키보드 입력을 그대로 출력하는 프로그램이 실행된다.
2) less 명령어로 조금 더 긴 파일을 효과적으로 볼 수 있다.
less [option] <filename>
보기 좋게 화면 단위로 출력하고 스크롤을 조작하여 볼 수 있다.
여러 단축기가 있지만 기본적으로 space(내리기) b(올리기) q(나가기) 만 기억해도 사용할 때 어려운 점이 없을 것이다.
6. 파일 복사하기
cp 명령어를 사용하면 파일을 복사할 수 있다.
cp [option] <복사할파일> <복사할위치>
복사할 위치에 디렉터리를 지정하면 복사된다. 여러 파일을 한꺼번에 복사할 수도 있다. 주의할 점은 같은 이름의 파일이 있다면 덮어쓰기를 한다. 그래서 -i 옵션을 통해 중복이 있는지 확인하면서 복사를 하는 것이 좋다.
디렉터리를 복사할 때는 중첩된 모든 것을 복사하여야 하기 때문에 -r 옵션을 더해주면 된다.
7. 파일 이동하기
mv 명령어로 파일을 이동할 수 있다.
mv [option] <이동할파일> <이동할위치>
이동할 위치에 파일이름을 적으면 파일 이름이 바뀐다. 그리고 디렉터리를 지정하면 그 디렉터리에 파일이 이동된다. 마찬가지로 -i 옵션으로 디렉터리 내용을 재귀적으로 복사할 수 있다.
8. 링크 만들기
ln 명령어로 링크를 만들 수 있다.
링크란 파일에 붙인 별명과 같은 것이다. 하드링크와 심볼릭 링크가 있고 보통 심볼릭링크를 사용한다.
1) 하드 링크
한 파일 원본에 여러개의 이름을 붙이는 것이다. 특징은 하드링크로 만든 파일은 모두 원본이다. 그러나 삭제할 때는 하나가 사라져도 다른 것이 지워지지 않는다. 모든 링크가 지워져야 원본이 지워진다.
ln file1 file2
file1과 file2는 링크가 되었다. 즉, file2에 cat을 사용한 것이나 file1에 cat을 사용한 것이나 동일한 결과를 얻을 수 있다.
하드링크는 디렉터리가 불가능하며 서로 다른 디스크에 있는 파일은 불가능하다는 단점이 있다.
2) 심볼릭 링크
심볼릭링크는 하드링크의 제약들(디렉터리, 서로다른 디스크)이 없어져서 더 많이 사용된다. 심볼릭링크는 원본 파일에 대한 정보가 담긴 특수 파일이며 원본과 구별된다는 것이 특징이다.
ln -s file1 file2
위와같이 -s 옵션을 붙이면 심볼릭 링크가 생성된다.
링크를 사용하는 경우는 크게 두 가지가 있다.
첫번째는 긴 경로명을 짧게 줄이고 싶을 때 그리고 두번째는 여러 버전의 프로그램이 있는 경우 관리를 위해서이다.
아직까지 나한테는 링크를 쓸만한 일이 없어 그냥 정리만 해두도록 하자.
'Linux' 카테고리의 다른 글
[Linux] 7. 텍스트 에디터 (0) | 2022.08.13 |
---|---|
[Linux] 6. 파일 검색 및 명령어 사용법 (0) | 2022.08.13 |
[Linux] 4. 파일과 디렉터리 (0) | 2022.08.10 |
[Linux] 3. 셸을 능숙하게 다루는 방법 (0) | 2022.08.10 |
[Linux] 2. 셸이란 무엇인가? (0) | 2022.08.10 |