본문 바로가기
OS/Linux

리눅스 기초 30강 시리즈 - 13강 파일 복사(cp) 삭제(rm)

by HJ0216 2023. 1. 24.

이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음 수강하며 정리한 글입니다.

 

13강 파일 복사(cp) 삭제(rm)

(일반 사용자 id: j, pw: j)

(관리자 id: root, pw: r)

 

cp 복사

[j@hj0216 ~/dd]$ cp /etc/a* .
cp: omitting directory `/etc/alternatives'
cp: cannot open `/etc/anacrontab' for reading: 허가 거부
cp: omitting directory `/etc/audisp'
cp: omitting directory `/etc/audit'
[j@hj0216 ~/dd]$ ls
adjtime  aliases  aliases.db  asound.conf
[j@hj0216 ~/dd]$ cp /etc/b* .
cp: omitting directory `/etc/bash_completion.d'
cp: omitting directory `/etc/binfmt.d'
[j@hj0216 ~/dd]$ ls
adjtime  aliases  aliases.db  asound.conf  bashrc
[j@hj0216 ~/dd]$ cp -r /etc/b* .
[j@hj0216 ~/dd]$ ls
adjtime  aliases.db   bash_completion.d  binfmt.d
aliases  asound.conf  bashrc

 

[j@hj0216 ~/dd]$ cp /etc/a* .

/etc dir에 a로 시작하는 모든 파일 .(현재 dir)로 복사

[j@hj0216 ~/dd]$ cp -r /etc/b* .

/etc dir에 b로 시작하는 모든 파일 및 dir .(현재 dir)로 복사

* r: recursive(재귀적), dir 포함

 

rm 삭제

[j@hj0216 ~/dd]$ rm a*
[j@hj0216 ~/dd]$ rm b*
rm: cannot remove `bash_completion.d': 디렉터리입니다
rm: cannot remove `binfmt.d': 디렉터리입니다
[j@hj0216 ~/dd]$ ls
bash_completion.d  binfmt.d
[j@hj0216 ~/dd]$ rm -r b*
[j@hj0216 ~/dd]$ ls
[j@hj0216 ~/dd]$

 

[j@hj0216 ~/dd]$ rm b*

현재 dir에서 b로 시작하는 파일 삭제(dir 삭제 불가)

[j@hj0216 ~/dd]$ rm -r b*

현재 dir에서 b로 시작하는 파일 및 dir 삭제

 

 

cp 복사 및 이름 바꾸기

[j@hj0216 ~/dd]$ cp /etc/bashrc b3
[j@hj0216 ~/dd]$ ll
합계 16
-rw-rw-r--. 1 j j    0  1월 24 23:30 a
-rw-rw-r--. 1 j j  144  1월 24 23:30 a2
-rw-r--r--. 1 j j 2853  1월 24 23:31 b2
-rw-r--r--. 1 j j 2853  1월 24 23:31 b3
-rw-r--r--. 1 j j 2853  1월 24 23:30 bashrc

cp 복사대상 파일이름

-> 복사대상이 파일이름으로 바뀌어서 복사됨

 

[j@hj0216 ~/dd]$ cp /etc/bashrc a
[j@hj0216 ~/dd]$ ll
합계 20
-rw-rw-r--. 1 j j 2853  1월 24 23:31 a
-rw-rw-r--. 1 j j  144  1월 24 23:30 a2
-rw-r--r--. 1 j j 2853  1월 24 23:31 b2
-rw-r--r--. 1 j j 2853  1월 24 23:31 b3
-rw-r--r--. 1 j j 2853  1월 24 23:30 bashrc

cp 복사대상 파일이름

-> 만일 현재 dir에 존재하는 파일이름으로 이름 지정 시, 해당 파일에 내용이 덮어 써짐

[j@hj0216 ~/dd]$ cp -i /etc/bashrc a
cp: overwrite `a'? n

단, option -i(interactive) 추가 시, overwrite에 대한 여부 확인

[j@hj0216 ~/dd]$ cp -f /etc/bashrc a2

단, option -f(force) 추가 시, 확인 없이 강제로 덮어 써짐

 

[j@hj0216 ~/dd]$ cp /etc/bashrc d2
[j@hj0216 ~/dd]$ ls d2
bashrc

cp 복사대상 dir이름

-> 만일 현재 dir에 존재하는 dir이름을 작성 시, 작성된 dir 하위에 해당 파일과 동일한 이름으로 복사됨

 

 

rm 삭제 및 추가 옵션

[j@hj0216 ~/dd]$ rm a*
[j@hj0216 ~/dd]$ rm [b-t]*
rm: cannot remove `d2': 디렉터리입니다

rm a*: a로 시작하는 모든 파일 삭제

rm [b-t]*: b-t로 시작하는 모든 파일 삭제(dir 삭제 불가)

 

[j@hj0216 ~/dd]$ rm -rf *
[j@hj0216 ~/dd]$ ls

rm -rf *: 모든 파일 및 dir 강제 삭제

 

[j@hj0216 ~/dd]$ cp /etc/* .
[j@hj0216 ~/dd]$ ls a*
adjtime  aliases  aliases.db  asound.conf
[j@hj0216 ~/dd]$ rm [^a]* -f
[j@hj0216 ~/dd]$ ls
adjtime  aliases  aliases.db  asound.conf

rm [^a]* -f: a로 시작하는 파일 제외 모두 강제 삭제

 

[j@hj0216 ~/dd]$ rm -i *
rm: remove 일반 파일 `adjtime'? y
rm: remove 일반 파일 `aliases'? y
rm: remove 일반 파일 `aliases.db'? y
rm: remove 일반 파일 `asound.conf'? y

rm -i *: 삭제 시, 삭제 여부 확인