노틸러스 (Nautilus)나 컹커러 (Konqueror)와 같은 그래픽 파일 관리자를 사용하여 손쉽게 파일을 조작할 수 있습니다. 쉘 프롬프트를 사용하여 파일을 조작할 수도 있으며 종종 쉘 프롬프트를 사용하는 것이 그래픽 파일 관리자를 사용하는 것보다 훨씬 빠르게 실행됩니다. 이 섹션에서는 쉘 프롬프트에서 파일을 조작하는 방법에 대하여 설명해 보겠습니다.
텍스트 편집기와 같은 응용 프로그램을 사용하시거나 또는 touch 명령을 사용하여 새 파일을 생성 가능합니다. touch 명령은 내용이 없는 빈 파일을 생성하며, 여러분은 이 파일에 텍스트나 데이터를 추가하실 수 있습니다. touch 명령을 사용하여 파일을 생성하시려면, 쉘 프롬프트에서 다음 명령을 입력하십시오.
touch <filename> |
앞에서 <filename> 부분을 여러분이 원하시는 파일명으로 대체하십시오. 디렉토리 보기 ls 명령을 실행하시면, 그 파일은 내용이 없는 빈 파일이므로 0 바이트의 정보를 포함하고 있는 것으로 표시됩니다. 예를 들어 쉘 프롬프트에서 ls -l newfile 명령을 입력하시면 다음과 같은 결과가 출력됩니다:
-rw-rw-r-- 1 sam sam 0 Apr 10 17:09 newfile |
Linux에서 사용 가능한 여러 다른 기능과 마찬가지로, 파일과 디렉토리를 조작하기 위한 다양한 방법이 존재합니다. 또한 13.11.5 절에서 설명된 것처럼 와일드카드를 사용하여 파일과 디렉토리를 더욱 빠르게 복사하고, 이동하거나 삭제하실 수 있습니다.
파일을 복사하시려면, 다음 명령을 입력해 주십시오.
cp <source> <destination> |
위의 명령에서 <source> 부분은 복사할 파일명으로 대체하시고 <destination> 부분은 파일이 저장될 디렉토리명으로 대체해 주십시오.
예를 들어 홈 디렉토리에 위치한 tigger/ 디렉토리로 sneakers.txt 파일을 복사하시려면, 홈 디렉토리로 이동 후 다음과 같은 명령을 입력하시면 됩니다:
cp sneakers.txt tigger/ |
cp 명령어와 함께 상대 경로명과 절대 경로명 모두 사용하실 수 있습니다. 홈 디렉토리는 tigger의 상위 디렉토리입니다; 즉, tigger는 홈 디렉토리로부터 한 단계 밑에 있는 디렉토리입니다.
![]() | 힌트 |
|---|---|
상대 경로명과 절대 경로명에 대한 보다 많은 정보를 원하신다면, 13.4 절을 참조하시기 바랍니다. |
cp 명령어와 함께 사용할 수 있는 전체 옵션 목록을 보시려면, (쉘 프롬프트에서 man cp 명령을 입력하여) cp 메뉴얼 페이지를 참조하시기 바랍니다. cp와 함께 사용할 수 있는 옵션은 다음과 같습니다:
-i — 대화식(interactive). 목적 디렉토리에 같은 파일이 있으면 그 파일을 덮어쓸 것인지를 확인합니다. 실수를 방지하기에 좋은 옵션입니다.
-r — 순환식(recursive). 지정된 파일과 디렉토리만 복사하기 보다는 전체 디렉토리 트리, 하부 디렉토리와 전체 파일을 복사합니다.
-v — 상세한 모드(verbose). 파일의 복사 진행 과정을 보여줍니다.
이제 tigger 디렉토리에 위치한 sneakers.txt 파일에 cp -i 명령을 사용하여 파일을 동일한 위치로 다시 복사해 봅니다.
cp -i sneakers.txt tigger cp: overwrite 'tigger/sneakers.txt'? |
기존에 있던 파일을 덮어쓰시려면,
mv 명령어를 사용하여 파일을 이동할 수 있습니다. mv 명령어와 관련된 보다 많은 정보를 원하신다면, mv 메뉴얼 페이지(man mv 입력)를 참조하시기 바랍니다.
mv 명령어와 함께 사용할 수 있는 일반 옵션은 다음과 같습니다:
-i — 대화식(interactive). 목적 디렉토리에 같은 파일이 있으면 그 파일을 덮어쓸 것인지를 확인합니다. cp 명령의 -i 옵션과 마찬가지로 실수를 방지하기에 좋은 옵션입니다.
-f — 강제(force). 대화식 모드를 무시하고, 목적 디렉토리에 동일한 파일이 존재하는 경우에도 확인하지 않고 무조건 파일을 이동합니다. 수행할 작업에 대하여 확실치 않다면, 이 옵션은 매우 위험합니다; 시스템 사용에 더 익숙해지기 전까지 이 옵션을 사용하실 때 매우 주의하시기 바랍니다.
-v — 상세한 모드(verbose). 파일이 이동되는 진행 과정을 보여줍니다.
홈 디렉토리에서 다른 디렉토리로 파일을 이동시키려면, 홈 디렉토리에서 다음과 같은 명령을 입력하십시오:
mv sneakers.txt tigger |
또는 다음 명령어와 같이 절대 경로명을 사용하셔도 됩니다
mv sneakers.txt /home/newuser/sneakers.txt /home/newuser/tigger |
여러분은 이미 touch 명령을 사용하여 파일을 만드는 방법을 익히셨으며, mkdir 명령을 사용하여 tigger 디렉토리를 만들어 보셨습니다.
이제 파일과 디렉토리를 지우는 방법에 대해 배워보도록 합니다. rm 명령을 사용하여 파일과 디렉토리를 쉽게 삭제하실 수 있습니다. 보다 많은 정보를 원하신다면, rm 메뉴얼 페이지를 읽어보시기 바랍니다. 파일과 디렉토리를 지우는데 사용되는 옵션들은 다음과 같습니다:
-i — 대화식(interactive). 삭제 작업을 실행하실 것인지 다시 한번 확인합니다. 이 옵션을 사용하시면 실수로 파일을 지우는 것을 방지할 수 있습니다.
-f — 강제(force). 대화식 모드를 무시하고 확인 없이 파일을 지웁니다. 수행하는 작업에 대해 정확히 알고 계시지 않다면, 이 옵션을 사용하지 않는 것이 좋습니다.
-v — 상세한 모드(verbose). 파일이 삭제되는 진행 상황을 보여줍니다.
-r — 반복(recursive). 디렉토리에 포함된 모든 파일과 하부 디렉토리를 삭제합니다.
rm 명령을 사용하여 piglet.txt 파일을 삭제하시려면, 다음과 같은 명령을 입력하십시오:
rm piglet.txt |
![]() | 경고 |
|---|---|
일단 rm 명령을 사용하여 파일이나 디렉토리를 삭제하셨다면, 그 파일은 영구적으로 삭제된 것으로 다시는 복구하실 수 없습니다. |
-i (대화식 - interactive) 옵션을 사용하여 정말로 파일을 삭제할 것인지 다시 한번 생각할 기회를 주는 것이 좋습니다.
rm -i piglet.txt rm: remove 'piglet.txt'? |
또한 와일드카드 *를 사용하여 파일을 삭제하는 것도 가능하지만 주의하셔야 합니다. 지우려고 생각하지 않았던 파일도 쉽게 지워버릴 수 있기 때문입니다.
와일드카드를 사용하여 파일을 지우시려면, 다음과 같이 입력하십시오:
rm pig* |
위의 명령어는 현재 디렉토리에서 pig로 시작하는 모든 파일을 지울 것입니다.
rm 명령을 이용하여 여러 파일을 동시에 삭제하는 것도 가능합니다. 예:
rm piglet.txt sneakers.txt |
rmdir 명령을 사용하여 디렉토리를 지울 수도 있습니다 (예, rmdir foo), 하지만 디렉토리가 비어있는 경우에만 가능합니다. rm를 사용하여 디렉토리를 지우시려면, -r 옵션을 지정해 주어야 합니다.
예를 들어, tigger 디렉토리에 포함된 모든 파일과 디렉토리를 반복적으로(recursively) 삭제하시려면, 다음과 같이 입력합니다:
rm -r tigger |
다음 명령어 처럼 반복적 삭제 작업 (-r 옵션)에 강제하기 옵션 (-f)을 결합하실 수 있습니다:
rm -rf tigger |
디렉토리를 삭제하는 방법으로서 rm 명령을 사용하는 것보다 rmdir 명령을 사용하는 것이 더욱 안전합니다. rmdir 명령은 반복적 삭제를 허용하지 않으므로 파일을 가지고 있는 디렉토리는 지워지지 않기 때문입니다.
![]() | 경고 |
|---|---|
rm 명령어는 전체 파일 시스템을 지울 수 있습니다! 만일 루트로 로그인하여 rm -rf / 명령어를 입력하면, 여러분은 곤경에 처하게 됩니다; 이 명령어는 여러분의 시스템 상의 모든 것을 반복적으로 삭제할 것입니다. |
rmdir에 대한 보다 많은 정보를 원하시면, man rmdir 명령을 사용하여 메뉴얼 페이지를 참조하시기 바랍니다.