**따라하기:
(1) 'rm 1.html' 명령을 내립니다.

**사진: 'rm 1.html' 명령을 내립니다.
(2) '1.html'를 지울까요? 라는 안내문이 나타납니다. y를 눌러서 지웁니다.

**사진: 지울 것인지 물어보면 y를 눌러서 지웁니다.
(3) ls 명령어로 확인해보면 1.html이 지워지고 없습니다.

**사진: 1.html 파일이 삭제되었습니다.
-r 옵션은 서브 디렉토리까지 지우는 옵션입니다.
rm 명령어에서 많이 쓰는 옵션은 서브 디렉토리까지 포함해 지우는 -r 옵션입니다. 이 옵션을 잘못 사용하면 서브 디렉토리의 파일까지 모두 지워지므로 사용에 신중을 기해야 합니다. 아차 실수로 서브 디렉토리의 파일을 한 순간에 삭제될 수 있습니다.
rmdir 명령은 서브 디렉토리를 지우기 위해서는 디렉토리 안의 파일부터 먼저 지워야 하지만 rm - r 옵션을 사용하면 한꺼번에 모든 파일과 서브 디렉토리를 지워주므로 한결 편합니다. 예를 들어 'rm -r game'이라고 사용하면 game 디렉토리 밑의 서브 디렉토리도 모두 지워집니다.
그렇지만 편하다고 함부로 사용하다가 지우지 말아야 할 서브 디렉토리와 파일이 지워지는 경우가 발생하므로 파일 지우는 명령어인 rm 명령어를 사용할 때는 신중할 필요가 있습니다.
현재 /home3/hangul/public_html/guide 디렉토리에 있는 상태이고, 홈디렉토리는 /home3/hangul 디렉토리인 상태에서 다음과 같이 명령을 내립니다.
rm -rf ~/public_html/guide/game
이 명령을 해석하자면 홈페이지(~) 밑에 있는 public_html/guide/game 디렉토리를 지우되 서브 디렉토리를 포함해서 지우며 지울 때 삭제 여부를 물어보지 않고 강제로 지운다는 뜻입니다. 따라서 /home3/hangul/public_html/guide/game 디렉토리를 물어보지 않고 강제로 지우게 됩니다. 이 명령을 내리면 삭제 여부를 물어보는 과정 없이 바로 game 디렉토리가 지워집니다.

**사진: 'rm -rf ~/public_html/guide/game' 명령 결과
11.5.2.원하는 파일 찾기 find, which
find는 패턴 이용 검색이 가능합니다.
원하는 파일을 컴퓨터 안에서 찾고자 할 때 사용하는 명령어로 find와 which가 있습니다.
find 명령어는 하드디스크에서 원하는 파일과 디렉토리 명을 찾습니다.
[형식]
find 경로 [옵션들] 패턴
[옵션]
-name : 파일이나 디렉토리 명에서 패턴과 일치하는 것들을 출력합니다.
[보기]
(1) find k*.html
(2) find ~ -name guide
(3) find -name kjt
[설명]
(1) k로 시작하고 확장자가 html 파일을 검색함.
(2) guide라는 낱말이 들어간 파일(또는 디렉토리)를 홈디렉토리부터 검색함.
(3) 현재 디렉토리에서 kjt라는 낱말이 들어간 것을 검색함.
guide 디렉토리에서 'find k*.html' 명령을 내렸을 때 k로 시작하는 html 파일인 kcch.html과 kjt.html 파일을 찾아줍니다.

**사진: 'find k*.html' 명령을 내리자 k로 시작하는 html 파일을 찾아줍니다.
이번에는 홈디렉토리인 hangul 디렉토리에서 'find ~ -name guide' 명령을 내렸습니다. 그 결과 '/home3/hangul/public_html/guide'가 발견됩니다. 화면을 보면 dachan 디렉토리는 '허가 거부됨'이라고 나오는데 이는 그 디렉토리에 대한 사용 권한이 없기 때문입니다.

**사진: 'find ~ -name guide' 명령의 결과
다시 guide 디렉토리에서 이번에는 'find -name kjt' 명령을 내립니다. 그러자 kjt가 들어간 경로로 './kjt'를 표시합니다.

**사진: 'find -name kjt' 명령 결과
which는 실행 파일의 위치를 알려줍니다.
which는 path에 걸려 있는 실행 파일의 위치를 알려주는 명령어입니다.
[형식]
which 명령어
[보기]
(1) which perl
(2) which ping
[설명]
(1) perl이 있는 곳을 검색함
(2) ping이 있는 곳을 검색함
[보기1]의 'which perl' 명령어는 perl 명령어가 어디에 있는지 찾아보라는 뜻입니다. 명령을 실행하면 서버의 '/usr/local/bin/perl' 디렉토리를 표시합니다. 이를 통해 perl이 어느 디렉토리에 있는지 알 수 있습니다.

**사진: 'which perl' 명령 결과
이번에는 자주 사용하는 ping 도구의 위치를 알고 싶습니다. 그래서 'which ping' 명령을 내렸습니다. 그러자 '/bin/ping'를 표시합니다. 이를 통해 ping 도구가 bin 디렉토리 밑에 있다는 사실을 알 수 있습니다.

**사진: 'which ping' 명령을 내리자 '/bin/ping'를 표시합니다.
11.5.3.파일 내용 보기 cat
cat 명령은 문서 파일 내용을 볼 때 주로 사용합니다.
파일의 내용이 무엇인지 보고 싶을 때 사용하는 명령어는 cat입니다. 주로 텍스트 문서 파일의 내용을 보고 싶을 때 사용합니다.
[형식]
cat
...
[보기]
(1) cat index.html
(2) cat txtscr.txt
(3) cat guide/readme
[설명]
(1) index.html 파일의 내용을 표시합니다.
(2) txtscr.txt 파일의 내용을 표시합니다.
(3) 현재 디렉토리 밑에 있는 guide 디렉토리에 있는 readme 파일의 내용을 표시합니다.
'cat txtscr.txt' 명령을 내리면 txtscr.txt 파일의 내용을 화면으로 보여줍니다. 문서의 내용이 많아서 화면을 넘어갈 경우에는 '| more'를 덧붙여서 한 화면씩 멈추면서 보면 됩니다.

**사진: 'cat txtscr.txt' 명령으로 txtscr.txt 파일의 내용을 봅니다.
11.5.4.파일 종류 알아내기 file
file로 파일 종류를 알 수 있습니다.
리눅스는 파일의 확장자만으로는 파일 종류를 알기 힘듭니다. 파일의 종류를 알고 싶을 때는 file 명령을 사용합니다.
[형식]
file [옵션] file1 file2...
[옵션]
-bcnvzL 등
[보기]
(1) file *.*
(2) file b*.*
(3) file bbs.cgi
[설명]
(1) 현재 디렉토리의 모든 파일의 종류를 표시합니다.
(2) 첫 글자가 b로 시작되는 파일만 종류를 표시합니다.
(3) bbs.cgi의 종류를 알려줍니다.
'file *.*' 명령을 주면 현재 디렉토리에 있는 모든 파일의 종류를 표시합니다.

**사진: 'file *.*' 명령 결과
확장자가 없거나 확장자로 알기 어려운 파일의 종류를 알고 싶을 때 사용합니다.
html이나 jpg 파일은 확장자만 봐도 무슨 종류의 파일인지 알 수 있습니다. file 명령은 확장자만 가지고는 파일의 종류를 알기 어려운 경우나 확장자가 없는 파일의 종류를 알고 싶을 때 사용하면 도움이 됩니다.
게시판 프로그램이 설치된 wwwboard 디렉토리에는 여러 가지 파일이 잇는데 이름만으로는 종류를 잘 모릅니다. 이럴 때 file 명령을 사용하면 실행 가능한 파일 여부와 그림 파일의 경우 해상도 등이 표시됩니다.

**사진: 'file *.*' 명령 결과
11.5.5.파일이나 디렉토리 복사하기 cp
cp 명령어는 파일이나 디렉토리를 복사할 때 사용합니다.
파일을 다른 이름으로 복사하거나 다른 디렉토리로 복사할 때 사용하는 명령어는 cp입니다. cp는 먼저 복사하려는 소스 파일의 경로를 적어주고 맨 마지막에 복사할 타겟 경로를 적어주면 됩니다.
[형식]
cp [옵션] ... <타겟 경로>
[기능]
부터 까지의 파일을 <타겟 경로>로 복사합니다.
[옵션]
-a : -dpR의 조합과 같습니다. 즉 링크 속성 유지, 파일과 디렉토리의 모든 속성 유지
-b : 덮어쓰거나 지울 때 백업 파일을 만듭니다.
-d : 심볼릭 링크 파일 그대로 복사합니다. (기본값은 연결된 원래 파일을 복사합니다.)
-f : 같은 파일명을 갖는 파일이 있을 경우, 지운 후 복사합니다. 즉 강제로 덮어쓰며 덮어쓸 때 확인하지 않습니다.
-i : 같은 파일명을 갖는 파일이 있을 경우, 덮어쓰기 전에 사용자에게 확인한 후 복사합니다. 기본값으로 지정되어 있습니다.
-l : 하드 링크를 만듭니다.
-p : 원시 파일의 소유자, 그룹, 허용 여부, 시간 등을 그대로 복사합니다.
-r : 서브 디렉토리를 포함한 모든 파일을 복사합니다.
-s : 심볼릭 링크를 만듭니다.
-u : 복사할 파일이 구 버전일 경우만 복사합니다.
-v : 복사하기 전에 각각의 파일명을 출력합니다.
-x : 파일 시스템이 같을 경우만 복사합니다.
-P : 원시 파일이 존재하는 디렉토리까지 포함하여 복사합니다.
-R : 디렉토리를 포함하여 복사합니다.
-S : 환경 변수 SIMPLE_BACKUP_SUFFIX에 의해 지정된 백업 꼬리말로 백업 파일을 만듭니다.
[보기]
(1) cp index.html index2.html
(2) cp ../game mygame
(3) cp guide/kjt.html kim.html
(4) cp -rf ~/guide ~/guide2
[설명]
(1) 현재 디렉토리에 있는 index.html 파일을 복사해 index2.html를 하나 더 만듭니다.
(2) ../game(모디렉토리 밑의 game) 디렉토리를 현재 디렉토리 밑에 mygame 디렉토리로 복사합니다.
(3) 현재 디렉토리 밑에 있는 guide 디렉토리에 있는 kjt.html 파일을 현재 디렉토리에 kim.html 파이로 복사합니다.
(4) 홈디렉토리 밑의 guide 디렉토리를 홈디렉토리 밑에 guide2로 복사합니다. 서브 디렉토리를 포함하며 같은 이름의 파일이 있을 경우에는 겹쳐씁니다.
'cp 소스파일 타겟파일' 형태로 사용합니다.
cp 명령은 파일을 복사할 때 사용하는 명령어로 가장 손쉽게 사용하는 것은 'cp 소스 파일 타겟파일'의 형태입니다. 옵션으로는 r, f, p를 주로 사용합니다. 예를 들어 다음과 같이 사용하면 kjt.html 파일이 kim.txt 파일로 복사됩니다.
cp kjt.html kim.txt
명령을 마친 후에 ls 명령어로 확인해보면 kim.txt 파일이 새로 하나 현재 디렉토리에 추가되었음을 볼 수 있습니다. 따라서 디렉토리 안에는 이전에 있던 kjt.html과 새로 복사해 만든 kim.txt 파일이 함께 존재하게 됩니다.

**사진: 'cp kjt.html kim.txt' 명령 실행 후에 확인해보면 kim.txt 파일이 새로 만들어졌음을 확인할 수 있습니
mv는 파일 이름을 바꾸거나 옮길 때 사용합니다.