14.4. 쉘 프롬프트에서 파일 조작하기

노틸러스 (Nautilus)나 컹커러 (Konqueror)와 같은 그래픽 파일 관리자를 사용하여 손쉽게 파일을 조작할 수 있습니다. 쉘 프롬프트를 사용하여 파일을 조작할 수도 있으며 종종 쉘 프롬프트를 사용하는 것이 그래픽 파일 관리자를 사용하는 것보다 훨씬 빠르게 실행됩니다. 이 섹션에서는 쉘 프롬프트에서 파일을 조작하는 방법에 대하여 설명해 보겠습니다.

14.4.1. 파일 만들기

텍스트 편집기와 같은 응용 프로그램을 사용하시거나 또는 touch 명령을 사용하여 새 파일을 생성 가능합니다. touch 명령은 내용이 없는 빈 파일을 생성하며, 여러분은 이 파일에 텍스트나 데이터를 추가하실 수 있습니다. touch 명령을 사용하여 파일을 생성하시려면, 쉘 프롬프트에서 다음 명령을 입력하십시오.

touch <filename>

앞에서 <filename> 부분을 여러분이 원하시는 파일명으로 대체하십시오. 디렉토리 보기 ls 명령을 실행하시면, 그 파일은 내용이 없는 빈 파일이므로 0 바이트의 정보를 포함하고 있는 것으로 표시됩니다. 예를 들어 쉘 프롬프트에서 ls -l newfile 명령을 입력하시면 다음과 같은 결과가 출력됩니다:

-rw-rw-r--    1 sam      sam             0 Apr 10 17:09 newfile

14.4.2. 파일 복사하기

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와 함께 사용할 수 있는 옵션은 다음과 같습니다:

이제 tigger 디렉토리에 위치한 sneakers.txt 파일에 cp -i 명령을 사용하여 파일을 동일한 위치로 다시 복사해 봅니다.

cp -i sneakers.txt tigger
cp: overwrite 'tigger/sneakers.txt'?

기존에 있던 파일을 덮어쓰시려면, [Y]를 누른 다음 [Enter] 키를 누르십시오. 반면에 파일을 덮어쓰고 싶지 않다면, [N]을 누르신 후 [Enter] 키를 누르시면 됩니다.

14.4.3. 파일 이동하기

mv 명령어를 사용하여 파일을 이동할 수 있습니다. mv 명령어와 관련된 보다 많은 정보를 원하신다면, mv 메뉴얼 페이지(man mv 입력)를 참조하시기 바랍니다.

mv 명령어와 함께 사용할 수 있는 일반 옵션은 다음과 같습니다:

홈 디렉토리에서 다른 디렉토리로 파일을 이동시키려면, 홈 디렉토리에서 다음과 같은 명령을 입력하십시오:

mv sneakers.txt tigger

또는 다음 명령어와 같이 절대 경로명을 사용하셔도 됩니다

mv sneakers.txt /home/newuser/sneakers.txt /home/newuser/tigger

14.4.4. 파일과 디렉토리 지우기

여러분은 이미 touch 명령을 사용하여 파일을 만드는 방법을 익히셨으며, mkdir 명령을 사용하여 tigger 디렉토리를 만들어 보셨습니다.

이제 파일과 디렉토리를 지우는 방법에 대해 배워보도록 합니다. rm 명령을 사용하여 파일과 디렉토리를 쉽게 삭제하실 수 있습니다. 보다 많은 정보를 원하신다면, rm 메뉴얼 페이지를 읽어보시기 바랍니다. 파일과 디렉토리를 지우는데 사용되는 옵션들은 다음과 같습니다:

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 명령을 사용하여 메뉴얼 페이지를 참조하시기 바랍니다.