본문 바로가기

Learning/ └Essential & Admin

리눅스 파일 관리 명령어_Unit3

파일 관리 명령어




touch CMD


# touch - 파일의 시간 정보를 변경


OPTIONS

-d (--date time)                   : 현재 시간 대신 지정한 시간(시분)값을 사용, 월 이름, 지역, 'am',등 여러가지 형식 포함

-m (--time=mtime)               : 최근 파일 변경 시간(modify time)만 변경 (파일 수정 시간)

-t MMDDhhmm[[CC]YY][,ss]    : 현재 시간 대신 지정한 시간 (MM : 달, DD : 날, hh : 시, mm : 분, [CC]YY : 년도, SS : 초)

-a                                     : 최근 파일 사용기간 만 변경

-c                                     : 파일을 생성하지 않는 명령어

-r [파일]                             : 현재 시간 대신 지정한 파일의 시간으로 변경

-t MMDDhhmm [[CC]YY][,ss]   : 현재 시간 대신 지정한 시간(월일시분)으로 변경


 

명령어 형식

# touch file2                        // file2 파일 1개 생성 (파일이 존재하면 시간을 지정)

# touch file1 file2                  // file1, file2 파일 2개 생성

# touch -t 08081230 file1        // file1 수정 시간 변경( 월,일,시,분)

 

빈 파일 생성

 

cd /test

rm -rf /test/*            // 현재 test 디렉터리 에 있는 모든 항목 삭제

touch file1                // file1 파일 생성

ls -l file1

파일의 크기 0

 

파일의 생성 시간 현재시간으로 변경

 

 

 

# cp -p /etc/passwd file2    // etc/passwd file2 를 test 디렉터리에 복사

ls -l file2                        //시간 정보를 확인 10/20 01:31

touch file2                    // test디렉터리에 file2 생성 ( 생성x 기존에 있던파일 ) 시간 정보변경.

ls -l file2                       //시간 정보를  확인 10/20 16:31 ( 현재시간 )

date                            // 현재 시간 16:31

 

 

 

touch -t 옵션 사용

touch -t 08301230 file2

ls -l file2

 


*touch -t 08301230 file1        //  시간을 임의대로 바꿀수 있다.



cp CMD


# cp - 파일 복사

OPTIONS

-i                   // 명령 에 대해 실행전 확인( 레드햇 계열 alias 에 -i 옵션 선언 되있음 )

-f                 // 명령 에 대해 묻지 않고 실행

-r                 // 디렉터리 복제 할때 사용

-p                // 속성 정보를 보존하면서 복제

-a                // (-r + -p) 

 

 

명령어 형식

# cp file1 file2                           // file1 파일내용을 file2로 생성

# cp file1 dir1                           // file1 파일내용을 dir1디렉터리에 file1 생성

# cp -r dir1 dir2                        // dir1 디렉터리를 dir2디렉터리로 생성

 

gedit ~/.bashrc : 편집기     //   source ~/.bashrc : 터미널에서 바로

alias tree='tree -C' 컬러표시(cp 명령어 쓸때 유리) 

 

# cp -p httpd.conf httpd.conf.orig

# cp /dev/null file.log (# > file.log)

 

파일에 대한 inode를 확인

 

 

복사 하면서 inode 가 바뀐 걸 확인 할 수 있다

 

cp 명령어의 -r 옵션

 

 

cp -r dir1 dir2

ls -lR

# cp -r /home/fedora/tmp

# cp -r/test /tmp

 

 

 

 

cp를 이용하여 같은 파일에 덮어 쓰기하는 경우

 

 

 

 


[ /test]# mkdir dir1                            // dir1 디렉터리 생성
[ /test]# echo "linux200" > file1                // file1 안에 linux200 입력
[ /test]# cat file1                                // file1 출력 보기
linux200

[ /test]# ls -l
합계 8.0K
drwxr-xr-x 2 root root 4.0K 10월 20 16:51 dir1
-rw-r--r-- 1 root root    9 10월 20 16:52 file1

 

 

 

 

# touch dir1/file1          //동일한 파일명으로 파일생성

# cat dir1/file1             //이름만 동일 할 뿐 내용 다름

# cp file1 dir1              //동일한 파일명에 덮어쓰기

 

 

 

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

 

 

 

# ls -l                     // file1 파일이 하나 보이고 퍼미션755 이다. rwxr-xr-x

# chmod 777 file1     // file1 퍼미션777로 변경

# ls -l                     // file1 파일의 퍼미션777로 변경되었다 rwxrwxrwx

# cp file1 file2          // fiel1 을 복사하여 file2를 만든다

# ls -l                     // 확인 결과 원본 파일의 정보와 다른것을 확인 퍼미션755

# cp -p file1 file3      // -p 를 사용해 복사 한다.

# ls -l                     // 확인 결과 file1 과 file3 의 정보가 동일하다.

 

# cp -p 예) 설정 파일을 백업 받고 설정하는 경우

# cd /etc/httpd/conf

# cp -p httpd.conf httpd.conf.old        // httpd.conf 파일 백업

# cp -p 예) 로그 파일(EX: file.log) 비우기 ( 파일은 유지 로그만 삭제)

# cp /dev/null file.log            // null file.log 의 크기는 0byte

# cat /dev/null > file.log            

# > file.log


 

 

 

# cp -p /var/log/messages file.log            // 파일의 용량이 200K로 변경

# cp -f /dev/null file.log                        // 파일의 크기가 0으로 변경

# ls -l file.log

-> 파일의 크기 '0' 확인

 

 

 

mv CMD


# mv - 파일 이동(rename)


OPTIONS

-f (--force)                // 대상 파일이 이미 잇어도 사용자에게 어떻게 처리할지를 묻지 않는다.

-i (--interactive)         // 대상 파일이 이미 있어, 사용자에게 어떻게 처리할지 물어 본다. y / n

   

명령어 형식

# mv file1 file2                    // file1 파일이 이름이 file2로 변함

# mv file1 dir1                    // file1 파일이 dir1 디렉토리에 하위경로로 이동

# mv dir1 dir2                    // dir1 디렉터리가 dir2 디렉터리에 하위경로로 이동
 

mv 명령어 사용법

 

cd /test ; rm -rf /test/*             // 두가지 명령을 ;을 이용하여 한줄에 입력 할수 있다

 

 

 

여러 개의 파일을 동시에 이동

 

 

 

touch f1 f2 f3

mkdir1 d1

mv f* d1            // *f 이라는 파일들을 모두 d1 디렉터리로 이동

 

 

[참고] 와일드 카드 문자

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

     *  :    0 or more character ( 없는것 부터 하나의 문자를 모두 포함 ) (except .file // dot으로 시작하는건 제외)

     ?  :    one charater ( 한개의 글자 , 어떤것이든 상관없음 ) 중복되는 이름중에 한글자만 출력

  ex)ls file?? : 존재하는 두개의 글자 까지 출력

    { } :    선택적인 하나의 문자열(단어) ex) ls file{1,2,22,3}

    [ ] :    선택적인 하나의 문자 ( 대괄호에 포함되어있는 모든 문자)

 

 


 

rm CMD


# rm - 파일 삭제


OPTIONS

-f (--force) : 지울 파일이 없을 경우에 아무런 메세지를 보여주지 않고 넘어감(쉘 스크립트 안에서 유용)

-i (--interactive) : 각 파일을 하나씩 지울 것인지 사용자에게 여부 y / n

-r (--recursive) : 일반 파일이면 그냥 지우고, 경로면 그 하위 경로와 파일 모두 삭제
 

명령어 형식

# rm file1                    // file1 파일 1개 삭제

# rm file1 file2              // file1, file2 파일 2개 삭제

# rm -r dir1 file1           // dir1 디렉터리 하위경로까지 삭제

 

 

[참고] 비어 있지 않은 디렉터리 삭제

# rm -rf dir1

 

[참고] rm 명렁어로 지운 파일 복구(100%장담x)

# debugfs /dev/sda3                // rm 명령어로 지운 파일들을 복원

[TUI]debugfs CMD 사용하는 방법            // ext2, ext3

[TUI]extundelete CMD 사용하는 방법        // ext3, ext4 ( 상위버전 에서 복원할수 있는 명령어 )

 

 

rm 명령어 -r 옵션 사용에 대해서

 

#cd /test

# rm -r /test/*

# mkdir dir1

# touch dir1/file1 dir1/file2

# cat ~/.baschrc

 

[참고] alias 사용법

(선언) # alias [사용할명령어]='명령어'

ex) # alias cp='cp -i'        / 복사 하는데 있어서 확인 여부를 물을것을 선언

(확인) # alias  / # alias cp    (현재 alias 되있는 항목 나열 / cp 에 대한 alias 정보 출력)

(해제) # unalias 명령어

ex) # unalias cp

 

 

레드헷 계열 베포판 에서는 rm,cp,mv 등에 alias -i 가 내장 선언 되어 있다.

 

 

gedit ~./bashrc  편집기에 alias선언 입력 시 프로그램 종료 or 재부팅 후에도 선언 효력 고정

( 내가 사용하기 편리하게 고정 선언 할 수 있다.)