본문 바로가기
모의해킹 침해대응 과정/Linux 기초

리눅스 기초때기 2일차 파일 관리 / TOUCH, CP, MV, RM

by 알거음슴 2021. 3. 30.

 

touch

비어있는 파일을 생성한다.

1. 형식

 [touch] [file1] [file2] 

* 파일의 중복생성 가능.

 

2. 옵션

 touch -t  : 파일의 수정 시간을 변경

 ex) touch -t 08081230 file1 = file1 의 시간을 8월8일12시30분으로 변경함.

 

 

 

cp

파일을 복사함

 

1. 형식

[CP] [file/dirA] [file/dirB]

 

2. 옵션

 cp -a : 원본 파일의 속성, 링크 정보를 유지하면서 복사

 cp -i : 복사 파일이 존재할 경우 복사할것을 물어봄 (덮어쓰기 확인)

 cp -f : 복사 할 파일이 존재할경우 삭제하고 복사 (덮어쓰기 강제)

 cp -p : 원본 파일의 소유, 그룹, 권한, 허용시간 보존한 채로 복사

 cp -r : 서브 디렉토리내 모든 파일까지 통째로 복사

 

3. 실습

 1) cp -r 을 사용하여 디렉토리를 복사해보자. ( dir1 내 file1,2 존재 / dir2는 생성안됨)

[root@server1 /test]# touch dir1/{file1,file2}
[root@server1 /test]# cp -r dir1 dir2
[root@server1 /test]# tree
├── dir1
│   ├── file1
│   └── file2
└── dir2
    ├── file1
    └── file2
 * dir2를 생성하고 해당 dir2 내에 file1,2가 생성됨.
 1-1) cp -r 을 사용하여 이전상태에서 한번 더 동일조건으로 적용해보자. ( dir1 내 file1,2 존재 / dir2내 file1,2 존재)

[root@server1 /test]# cp -r dir1 dir2
[root@server1 /test]# tree
├── dir1
│   ├── file1
│   └── file2
└── dir2
    ├── dir1
    │   ├── file1
    │   └── file2
    ├── file1
    └── file2
 * 기 생성되어있는 dir2 내에 dir1 생성 및 하위 파일도 같이 생성된다.

 

 2) cp -p 를 이용하여 원본 파일의 퍼미션 유지하며 복사 하자

[root@server1 /test]# touch file1
[root@server1 /test]# chmod 777 file1
[root@server1 /test]# ll
합계 0
drwxr-xr-x   2 root root  19  3월 30 17:09 .
dr-xr-xr-x. 19 root root 268  3월 30 12:44 ..
-rwxrwxrwx   1 root root   0  3월 30 17:09 file1
[root@server1 /test]# cp file1 file2
[root@server1 /test]# ll
합계 0
drwxr-xr-x   2 root root  32  3월 30 17:09 .
dr-xr-xr-x. 19 root root 268  3월 30 12:44 ..
-rwxrwxrwx   1 root root   0  3월 30 17:09 file1
-rwxr-xr-x   1 root root   0  3월 30 17:09 file2
[root@server1 /test]# cp -p file1 file3
[root@server1 /test]# ll
합계 0
drwxr-xr-x   2 root root  45  3월 30 17:10 .
dr-xr-xr-x. 19 root root 268  3월 30 12:44 ..
-rwxrwxrwx   1 root root   0  3월 30 17:09 file1
-rwxr-xr-x   1 root root   0  3월 30 17:09 file2
-rwxrwxrwx   1 root root   0  3월 30 17:09 file3
[root@server1 /test]# 

 

사용자 기준으로 파일 및 디렉토리 복사 기능 실습

 

실무기준으로는 항상 백업시 

파일 by 파일의 경우는 -r 꼭 사용

디렉토리 by 디렉토리 의 경우는 -a 꼭 사용

* 퍼미션 등의 문제가 생길 수 있기에 원본 자체 그대로를  긁어올 필요가 있음.

 

 

mv

 

파일 옮기기 또는 파일 명 수정

형식

mv file1 file2

mv file1 dir1

mv dir1 dir2 ( 단 dir2가 존재 하는지 안하는지에 따라 다름)

옵션

- i

- f

 

[참고] 와일드 카드 캐릭터

하나의 문자가 여러개의 문자의 의미를 포함하는 문자

* : 0 or more character (except .file) (EX) # cp file* dir1)

? : one charater (EX) # cp file? dir1)

{ } : 선택적인 하나의 문자열(단어)and 의 의미 (EX) # cp file{apple,bannar,orange} dir1

[ ] : 선택적인 하나의 문자 (EX) # cp file[123] dir1

 

# cd /test ; rm -rf /test/*

# touch file file1 file2 file22 file3 .file4

# ls -a

 

# ls file* -> file file1 file2 file22 file3

# ls * -> file file1 file2 file22 file3

 

# ls file? -> file1 file2 file3

# ls file?? -> file22

 

# ls file{1,2,22,3} -> file1 file2 file22 file3

 

# ls file[123] -> file1 file2 file3

# ls file[1-3]

# ls file[0-9,A-Z,a-z]-> file1 file2 file3

 

 

rm

파일을 지움.

 

1. 형식

 [rm] [OPTIONS] [file/dir]

 

2. 옵션

 rm -f : 파일을 강제로 삭제함

 rm -i : 파일을 삭제할지 사용자에게 물어봄

 rm -r : 일반 파일이면 그냥 지움

 

3. 실습 

 1) 파일을 생성하고 여러 경우로 삭제해보자.

 * 선행준비 

[root@server1 /test]#  cd /test; rm -rf /test/*
[root@server1 /test]# mkdir dir1
[root@server1 /test]# touch dir1/file{1,2}
[root@server1 /test]# ls
.  ..  dir1
[root@server1 /test]# ls dir1
.  ..  file1  file2

 1-1) rm -r 로 dir1을 삭제해보자.

[root@server1 /test]# rm -r dir1
rm: descend into directory 'dir1'? y
rm: remove 일반 빈 파일 'dir1/file1'? y
rm: remove 일반 빈 파일 'dir1/file2'? y
rm: remove 디렉토리 'dir1'? y

 * 이렇게 여러번 물어보며 삭제처리 되기때문에 추가 옵션활용시 빠른 작업이 이루어진다

 1-2) rm -rf 로 dir1을 삭제해보자.

[root@server1 /test]# rm -rf dir1
[root@server1 /test]# ls
.  ..
[root@server1 /test]# 

 * 바로 삭제되는걸 확인할 수 있다.

 

* [참고] rm 명령어로 지운 파일 복구(100% 장담할 수 없음)

(TUI) extundelete CMD 사용하는 방법(ext3, ext4)

(GUI) TestDisk 툴을 사용하는 방법(Windows(FAT32/NTFS), Linux(ext3/ext4))