no image
[Linux 기본 명령어] 파일의 맨 앞과 뒤쪽 출력하기 (head, tail)
우리가 앞으로 여러 파일을 관찰해 볼 텐데 내용이 너무 많은 경우가 있다. 이 때 맨 앞 몇줄만 보거나 맨 뒤 몇 줄만 확인하기 위해 다음 2가지 명령어를 사용할 수 있다. head는 파일의 앞부분을 출력하며 tail은 파일의 뒷부분을 출력한다. head * head 명령어 head (옵션) (파일명) 먼저 아래와 같의 몇몇 파일들은 많은 양의 내용이 있고 그만큼 출력량이 많아지게 된다. 이 때 필요한 부분만 지정해서 찾아보도록하자. 물론 이 명령어는 내용의 중간을 출력하는 것이 아닌 끝부분에서 지정한 번째까지 출력하는 명령이다. 숫자는 위와 같이 2가지 방식으로 적용 가능하다. -c 명령어를 사용해 출력할 용량(바이트)을 지정할 수 있다. tail tail 명령어 사용법은 head와 동일하나 추가로 -..
2023.03.08
no image
[Linux 기본 명령어] 파일 생성 명령어와 옵션 (3) vi
드디어 파일 생성 마지막 명령어인 vi 옵션이다. 리눅스에서 기본적으로 제공되는 텍스트 편집기 중 하나로 명령 모드와 편집 모드로 나뉘며 커맨드 키도 있고, 처음 보면 복잡해 보일 수 있다. 하지만 어찌보면 제일 중요하고, 많이 사용하고, 힘이 강력하다. 하지만 최대한 쉽게 설명해보겠다. * 기본 형식 vi (옵션) (경로/파일명) 다음 명령어를입력해서 들어가보면 다음과 같이 내용이 나올것이다. 원래는 이렇게 내용이 많고 복잡하지만 쉽게 하기 위해 위쪽 이미지로 진행하겠다. 처음 들어가면 이 사진과 같이 명령모드로 진입이 되어 있다. 이 때 편집을 하기위해 커맨드를 입력해주어야 하는데 그것에 대해서 알아보자. 이동 이동은 보통 방향키로 진행하는 경우가 많다. 하지만 모든 리눅스가 방향키를 지원하는 것은 ..
2023.03.06
no image
[Linux 기본 명령어] 하드 링크와 심볼릭 링크 (ln)
오늘은 링크를 만들어보고 그 특징을 살펴볼 것이다. 하드 링크 하드 링크는 원본 파일과 동일한 inode를 가지며, 원본 파일이 삭제되어도 링크 파일을 여전히 사용할 수 있다. 이는 위치 정보를 가지고 있는 이름을 여러 개 생성하는 개념으로, 한 파일을 지워도 하드에서 해당 위치를 찾아갈 수 있다. 하드 링크를 만들기 위해서는 ln [원본파일] [링크파일] 명령어를 사용한다. 링크로 연결되어 있기 때문에 하나의 파일을 수정하면 다른 파일도 수정된다. 하지만 둘 중 어느 파일을 지운다고 해서 지장이 가거나 하지는 않는다. 심볼릭 링크 심볼릭 링크는 원본 파일의 경로를 가리키는 파일이다. 따라서 심볼릭 링크를 수정하면 원본 파일도 수정된다. 심볼릭 링크를 만들기 위해서는 ln -s [원본파일] [링크파일] ..
2023.03.06
no image
[Linux 기본 명령어] 파일이나 디렉토리를 복사하는 명령어와 옵션(cp)
cp * 기본 형식 cp (옵션) (원본파일) (대상파일) 이 때 파일 앞에 경로를 지정해서 다른곳에서 가져오거나 붙여넣을 수 있다. 이렇게 경로를 지정해서 다른 곳으로 옮길 수 있다. 만약 작업하는 디렉토리와 복사하고 싶은 파일의 위치가 다르다면 복사하고 싶은 파일 앞에 경로를 입력해주면 복사가 가능하다. 또한 눈치가 빠른사람들은 이름을 변경해서 복사가 가능하다는 것을 알아챘을 것이다. cp 속성 cp -a : 파일 및 디렉토리를 원래 상태를 유지하면서 복사한다. 즉, 소스 파일의 모든 속성(파일 권한, 소유자, 타임스탬프 등)을 대상 파일에 복사한다. 재귀적으로 디렉토리를 복사하며 하드 링크를 사용하여 파일을 복사한다. 원본 파일에 대한 변경 사항을 복사본에 반영하지 않으며, 대상 파일이 이미 존재하..
2023.03.06
no image
[Linux 기본 명령어] 파일 생성 명령어와 옵션 (2) cat
파일 생성 2번째 시간이다. 조금 길어질 수 있어서 바로 본론으로 가도록하자. cat 그리고 >, >> * 기본 형식 cat (옵션) (이름) cat은 사실 파일의 내용을 '보는' 명령어이다. 이전 touch에서 생성 말고 다른 것을 했던것을 생각하면 각기 특징을 가지고 있다. 먼저 cat은 파일이 없다면 그 내용을 볼 수 없다. 그래서 '>' 기호를 이용해 파일을 생성할 수 있다. 명령어를 입력하면 커서가 한칸 아래로 내려가는데 거기에 내용을 적어서 Ctrl + D를 눌러 저장할 수 있다. '>>'로 2개를 붙여쓰면 이미 생성돼있는 파일에 내용을 추가할 때 사용한다. 다음 사진을 보면 >> 기호를 이용해 123123을 추가하니 내용 맨 뒤에 추가가 된 것을 볼 수 있다. 여기 까지 정리하자면 cat은 ..
2023.03.05
no image
[Linux 기본 명령어] 파일 생성 명령어와 옵션 (1) touch
시작하기에 앞서 mkdir과 같이 생성하는 명령어임에는 동일하지만 다른점은 mkdir은 디렉토리를 우리가 3번의 걸쳐 배울 생성 명령어들은 파일을 생성하는 명령어라는 것이다. 파일 생성 명령어는 touch, cat, vi를 순차적으로 진행할 예정이다. 그럼 시작해보자. touch * 기본 형식 touch (옵션) (이름) 위와 같이 파일을 생성할 수 있는 명령어이지만 사실 파일의 시간과 관련된 사항을 만지는데 사용하기도 한다. 옵션들과 함께 알아보도록 하자. 먼저 우리는 이전에 배웠던 stat 명령어를 이용해 touch 명령어를 비교해볼 것이다. 아래에 표시한 시간의 특징은 다음과 같다. Access : 파일을 읽어오거나 실행했을 때으 시간으로 파일에 접근한 시간을 말한다. Modify : 파일의 내용이..
2023.03.05
반응형

우리가 앞으로 여러 파일을 관찰해 볼 텐데 내용이 너무 많은 경우가 있다. 이 때 맨 앞 몇줄만 보거나 맨 뒤 몇 줄만 확인하기 위해 다음 2가지 명령어를 사용할 수 있다. head는 파일의 앞부분을 출력하며 tail은 파일의 뒷부분을 출력한다.


head

* head 명령어

head (옵션) (파일명)

 

먼저 아래와 같의 몇몇 파일들은 많은 양의 내용이 있고 그만큼 출력량이 많아지게 된다. 이 때 필요한 부분만 지정해서 찾아보도록하자. 물론 이 명령어는 내용의 중간을 출력하는 것이 아닌 끝부분에서 지정한 번째까지 출력하는 명령이다.


숫자는 위와 같이 2가지 방식으로 적용 가능하다.


-c 명령어를 사용해 출력할 용량(바이트)을 지정할 수 있다.


tail

tail 명령어 사용법은 head와 동일하나 추가로 -f 와 -F옵션이 있다. -f는 해당 파일의 끝부분을 계속 출력하고 변화가 있으면 그 내용을 출력한다. -F는 마찬가지로 끝부분을 계속 출력하고 파일이 삭제되거나 변경되면 알려준다. 이번에는 내용이 없는 a.txt를 가지고 실험해볼 것이다.

같은 리눅스 ip지만 이렇게 여러개를 열 수 있다.

이렇게 변화를 주면 -f 명령어를 이용해 끝부분을 출력중이던 처음 페이지에 변화가 생긴다.

a.txt를 지워버려 지워졌다고 알려주는 문장이 출력된다.


이 내용은 권한을 설명할 때 자주 사용될 예정으로 알아두면 좋을 것으로 예상된다.

반응형
반응형

드디어 파일 생성 마지막 명령어인 vi 옵션이다. 리눅스에서 기본적으로 제공되는 텍스트 편집기 중 하나로 명령 모드와 편집 모드로 나뉘며 커맨드 키도 있고, 처음 보면 복잡해 보일 수 있다. 하지만 어찌보면 제일 중요하고, 많이 사용하고, 힘이 강력하다. 하지만 최대한 쉽게 설명해보겠다.


* 기본 형식

vi (옵션) (경로/파일명)

다음 명령어를입력해서 들어가보면 다음과 같이 내용이 나올것이다.

원래는 이렇게 내용이 많고 복잡하지만 쉽게 하기 위해 위쪽 이미지로 진행하겠다.

처음 들어가면 이 사진과 같이 명령모드로 진입이 되어 있다. 이 때 편집을 하기위해 커맨드를 입력해주어야 하는데 그것에 대해서 알아보자.


이동

이동은 보통 방향키로 진행하는 경우가 많다. 하지만 모든 리눅스가  방향키를 지원하는 것은 아니다 때문에 다음 키를 입력해 이동한다.

h : 왼쪽          j : 아래          k : 위           l : 오른쪽


입력모드

이전에 리눅스는 대소문자를 철저하게 구분한다고 한 적이 있다. 그 예시가 될 수도 있을 것 같다.

  • a, A : 커서가 한 칸 다음으로 이동한다. / 커서가 맨 뒤로 이동한다.
  • i, I : 커서가 한 칸 앞으로 이동한다. / 커서가 맨 앞으로 이동한다.
  • o, O : 현재 커서 아래에 새로운 줄을 생성한 후 이동한다. / 현재 커서 위로 새로운 줄을 생성한 후 이동한다.
  • s, S : 현재 커서에 있는 한 글자를 지운다. / 현재 커서가 있는 한 줄을 지운다.

명령 모드

1. set number(se nu) : 행 앞에 숫자를 표시해준다.

2. g, G : 명령모드에서 숫자와 gg를 입력하면 해당 줄로 이동한다. (100gg : 100번째 줄로 이동) / 맨 뒤로 이동한다.

3. x : 현재 커서에 있는 글자를 삭제한다.

4. V : 현재 커서를 기준으로 방향키를 위, 아래로 움직이면 움직이는 만큼의 행이 선택된다. 

5. yy : 현재 커서가 있는 한 줄, 혹은 V를 이용해 지정한 부분을 복사한다.

6. p, P : 커서 다음 줄에 복사한 것을 붙여넣는다. / 커서 위줄에 복사한 것을 붙여넣는다.

7. u : 명령어 실행한 것을 한 단계 이전으로 돌려 놓는다.

8. /(찾고자 하는 단어) : 검색

9. n, N : 검색 시 다음 단어로 이동 / 이전 단어로 이동


앞에 ' : '를 필수로 붙여야한다.

10. :w : 저장

11. :q : 나가기

12. :wq : 저장 및 종료

13. :q! : 강제 종료

14. :.s/변경하고싶은 내용/변경할 내용
14.1 :s/변경하고 싶은 내용/변경할 내용/g : 줄에 있는 모든 공통사항 변경
17. :1co6 : 1번째 줄을 6번째 줄에 복사
18. :d : 지우기

 

이외에도 몇가지가 더 있지만 아래를 참고하면 좋을 것 같다.

 

* 맨 뒷줄을 뜻하는 기호 : $


vi 명령어 사용법 (영어)

출처 : 리눅스 vi --help

 

VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jun 13 2022 00:00:00)

Usage: vim [arguments] [file ..]       edit specified file(s)
   or: vim [arguments] -               read text from stdin
   or: vim [arguments] -t tag          edit file where tag is defined

Arguments:
   -- Only file names after this
   -v Vi mode (like "vi")
   -e Ex mode (like "ex")
   -E Improved Ex mode
   -s Silent (batch) mode (only for "ex")
   -y Easy mode (like "evim", modeless)
   -R Readonly mode (like "view")
   -Z Restricted mode (like "rvim")
   -m Modifications (writing files) not allowed
   -M Modifications in text not allowed
   -b Binary mode
   -C Compatible with Vi: 'compatible'
   -N Not fully Vi compatible: 'nocompatible'
   -V[N][fname] Be verbose [level N] [log messages to fname]
   -n No swap file, use memory only
   -r List swap files and exit
   -r (with file name) Recover crashed session
   -L Same as -r
   -T <terminal> Set terminal type to <terminal>
   --not-a-term Skip warning for input/output not being a terminal
   --ttyfail Exit if input or output is not a terminal
   -u <vimrc> Use <vimrc> instead of any .vimrc
   --noplugin Don't load plugin scripts
   -p[N] Open N tab pages (default: one for each file)
   -o[N] Open N windows (default: one for each file)
   -O[N] Like -o but split vertically
   + Start at end of file
   +<lnum> Start at line <lnum>
   --cmd <command> Execute <command> before loading any vimrc file
   -c <command> Execute <command> after loading the first file
   -S <session> Source file <session> after loading the first file
   -s <scriptin> Read Normal mode commands from file <scriptin>
   -w <scriptout> Append all typed commands to file <scriptout>
   -W <scriptout> Write all typed commands to file <scriptout>
   --clean 'nocompatible', Vim defaults, no plugins, no viminfo
   -h  or  --help Print Help (this message) and exit
   --version Print version information and exit


이미지 파일 없이 요약해서 정리하니 생각보다 내용이 별로 없는 것 같다. 하지만 엄청 중요하니 리눅스를 하게 된다면 얼른 친해져야 할 필요가 있다.

반응형
반응형

오늘은 링크를 만들어보고 그 특징을 살펴볼 것이다.


하드 링크

하드 링크는 원본 파일과 동일한 inode를 가지며, 원본 파일이 삭제되어도 링크 파일을 여전히 사용할 수 있다. 이는 위치 정보를 가지고 있는 이름을 여러 개 생성하는 개념으로, 한 파일을 지워도 하드에서 해당 위치를 찾아갈 수 있다. 하드 링크를 만들기 위해서는 ln [원본파일] [링크파일] 명령어를 사용한다.

링크로 연결되어 있기 때문에 하나의 파일을 수정하면 다른 파일도 수정된다.

하지만 둘 중 어느 파일을 지운다고 해서 지장이 가거나 하지는 않는다.


심볼릭 링크

심볼릭 링크는 원본 파일의 경로를 가리키는 파일이다. 따라서 심볼릭 링크를 수정하면 원본 파일도 수정된다. 심볼릭 링크를 만들기 위해서는 ln -s [원본파일] [링크파일] 명령어를 사용한다.

아까와는 달리 심볼릭 링크된 파일은 파란색 텍스트로 나오고 어느 파일과 링크 되었는지 나오게 된다.

하드 링크와 마찬가지로 둘 중 어느 것이라도 내용을 수정하면 나머지도 마찬가지로 수정이 된다.

하지만 원본 파일이 없어지면 링크된 파일은 링크가 끊어지고 빨간색으로 표시된다.

명령어를 이용해 링크된 파일과 같은 이름의 파일을 만들면 다시 연결은 되지만 내용은 전혀다른 파일이 된다. 이 점을 유의 해야 한다.


기타 옵션들

출처 : 리눅스 ln --help

      --backup[=CONTROL]      make a backup of each existing destination file
  -b                          like --backup but does not accept an argument
  -d, -F, --directory         allow the superuser to attempt to hard link directories (note: will probably fail due to
                                system restrictions, even for the superuser)
  -f, --force                 remove existing destination files
  -i, --interactive           prompt whether to remove destinations
  -L, --logical               dereference TARGETs that are symbolic links
  -n, --no-dereference        treat LINK_NAME as a normal file if it is a symbolic link to a directory
  -P, --physical              make hard links directly to symbolic links
  -r, --relative              create symbolic links relative to link location
  -s, --symbolic              make symbolic links instead of hard links
  -S, --suffix=SUFFIX         override the usual backup suffix
  -t, --target-directory=DIRECTORY  specify the DIRECTORY in which to create the links
  -T, --no-target-directory   treat LINK_NAME as a normal file always
  -v, --verbose               print name of each linked file
      --help     display this help and exit
      --version  output version information and exit


혹시나 더 궁금한 것들이 있다면 댓글을 남겨달라. 조사해서 올려보도록 하겠다.

반응형
반응형

cp

* 기본 형식

cp (옵션) (원본파일) (대상파일)

이 때 파일 앞에 경로를 지정해서 다른곳에서 가져오거나 붙여넣을 수 있다.

 

이렇게 경로를 지정해서 다른 곳으로 옮길 수 있다. 만약 작업하는 디렉토리와 복사하고 싶은 파일의 위치가 다르다면 복사하고 싶은 파일 앞에 경로를 입력해주면 복사가 가능하다. 또한 눈치가 빠른사람들은 이름을 변경해서 복사가 가능하다는 것을 알아챘을 것이다.


cp 속성
  • cp -a : 파일 및 디렉토리를 원래 상태를 유지하면서 복사한다. 즉, 소스 파일의 모든 속성(파일 권한, 소유자, 타임스탬프 등)을 대상 파일에 복사한다. 재귀적으로 디렉토리를 복사하며 하드 링크를 사용하여 파일을 복사한다. 원본 파일에 대한 변경 사항을 복사본에 반영하지 않으며, 대상 파일이 이미 존재하는 경우 덮어쓴다.

  • cp -r : 디렉토리와 그 내용을 재귀적으로 복사한다. 디렉토리의 권한, 소유자, 타임스탬프 및 모드 등은 그대로 복사된다. 하지만 하드 링크 대신 복사를 사용하여 파일을 복사한다. 원본 파일에 대한 변경 사항을 복사본에 반영하지 않는다. 대상 디렉토리가 이미 존재하는 경우 덮어쓴다.


cp 옵션

-f --force: 이름이 중복된다면 대상을 덮어쓴다.

-n --no-clobber: f와 반대로 덮어쓰지 않는다.

-u --update: 대상 파일이 이미 존재하고, 원본 파일보다 수정된 시간이 더 이후일 경우에만 복사한다.

 

* 공통 옵션 --help

내가 사용하려는 명령어의 옵션이 궁금하다면 명령어 뒤에 --help를 적어보면 사용할 수 있는 항목이 여럿 나온다. 거기서 찾아 적용하면 될 것이다. 영어가 어렵게 돼있는것도 아니라서 찾는데 크게 어려움은 없을 것이다.


이번 포스팅부터 옵션을 중요한 경우가 아니라면 적용 사진을 넘어가도록 하겠다. 옵션이 너무 많기도 하거니와 다 사용하지도 않기 때문이다. 대신 옵션의 정보만 나열해 적어두도록 하겠다.

 

 

* 출처 : 리눅스 cp --help

  -a, --archive                same as -dR --preserve=all
       --attributes-only        don't copy the file data, just the attributes
       --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
       --copy-contents          copy contents of special files when recursive
  -d                           same as --no-dereference --preserve=links
  -f, --force                  if an existing destination file cannot be opened, remove it and try again (this option
                                 is ignored when the -n option is also used)
  -i, --interactive            prompt before overwrite (overrides a previous -n option)
  -H                           follow command-line symbolic links in SOURCE
  -l, --link                   hard link files instead of copying
  -L, --dereference            always follow symbolic links in SOURCE
  -n, --no-clobber             do not overwrite an existing file (overrides a previous -i option)
  -P, --no-dereference         never follow symbolic links in SOURCE
  -p                           same as --preserve=mode,ownership,timestamps
       --preserve[=ATTR_LIST]   preserve the specified attributes (default: mode,ownership,timestamps), if possible
                                 additional attributes: context, links, xattr, all
  -c                           deprecated, same as --preserve=context
      --no-preserve=ATTR_LIST  don't preserve the specified attributes
      --parents                use full source file name under DIRECTORY
  -R, -r, --recursive          copy directories recursively
      --reflink[=WHEN]         control clone/CoW copies. See below
      --remove-destination     remove each existing destination file before attempting to open it (contrast with --force)
      --sparse=WHEN            control creation of sparse files. See below
      --strip-trailing-slashes  remove any trailing slashes from each SOURCE argument
  -s, --symbolic-link          make symbolic links instead of copying
  -S, --suffix=SUFFIX          override the usual backup suffix
  -t, --target-directory=DIRECTORY  copy all SOURCE arguments into DIRECTORY
  -T, --no-target-directory    treat DEST as a normal file
  -u, --update                 copy only when the SOURCE file is newer than the destination file or when the
                                 destination file is missing
  -v, --verbose                explain what is being done
  -x, --one-file-system        stay on this file system
  -Z                           set SELinux security context of destination file to default type

반응형
반응형

파일 생성 2번째 시간이다.  조금 길어질 수 있어서 바로 본론으로 가도록하자.


cat 그리고 >, >>

* 기본 형식

cat (옵션) (이름)

cat은 사실 파일의 내용을 '보는' 명령어이다. 이전 touch에서 생성 말고 다른 것을 했던것을 생각하면 각기 특징을 가지고 있다. 먼저 cat은 파일이 없다면 그 내용을 볼 수 없다.

그래서 '>' 기호를 이용해 파일을 생성할 수 있다. 명령어를 입력하면 커서가 한칸 아래로 내려가는데 거기에 내용을 적어서 Ctrl + D를 눌러 저장할 수 있다.

'>>'로 2개를 붙여쓰면 이미 생성돼있는 파일에 내용을 추가할 때 사용한다. 다음 사진을 보면 >> 기호를 이용해 123123을 추가하니 내용 맨 뒤에 추가가 된 것을 볼 수 있다.

여기 까지 정리하자면 cat은 파일 내용을 보는 명령어이고, > 옵션은 생성, >> 옵션은 추가이다.


다른 옵션들

-n

각 행마다 번호를 출력한다.

-b

비어있지 않은 행마다 번호를 출력한다. 비어있는 행은 아무것도 표시가 되지 않는다.

-s

연속된 빈 행을 하나의 빈 행으로 표시한다. 다음 사진을 보면 공백이 줄어든 것을 볼 수 있다.

-E

행 맨 끝에 $를 함께 출력한다.


* 내용 지우기

아마 내용을 적거나 추가하다가 잘못 써서 지우려고 했는데 지워지지는 않고 문자만 출력되는 경험을 했을 수 있다. 다음사진은 순서대로 Tab키, Esc키, 지우기키를 눌렀을 때 나오는 모양이다. 이 때 지우고 싶다면 Ctrl을 누루고 지워보면 잘 지워질 것이다.


-T

Tab키를 이용해 공백이 발생했다면 다음과 같이 ^I가 표시된다.

-v

위의 내용지우기 부분에서 설명했던 것들은 cat만 사용했을 때 보이지는 않는다. 하지만 v 옵션을 가지고 볼 수 있다.


여러개의 옵션이 합쳐진 옵션

-A

옵션 중 v, E, T 3가지를 모두 적용해 출력한다.

-e

v, E 옵션을 둘다 적용해 출력한다.

리눅스에서 대소문자를 구분해야하는 중요한 이유는 위처럼 소문자와 대문자 명령어가 다르기 때문이다. 또한 리눅스 자체에서 완전히 다른글자로 취급하기 때문이기도 하다.


이 외의 옵션

-t

탭 문자를 ^I로, 개행 문자를 $로 표시한다. 이를 통해 파일의 구조를 파악할 수 있다.

 

-u

출력 버퍼링을 사용하지 않는 것으로, 출력하는 내용을 즉시 표시한다. 이는 대용량 파일이나 실시간 스트리밍 데이터를 출력할 때 유용하다.

 

이 2가지 옵션은 위 내용을 가지고는 표현할 방법이 없고 나중에 차차 기회가 될 때마다 시연해 올리도록 하겠다.


이제 대망의 3가지 생성 명령어중 vi만을 남겨두고 있다. 이것은 cat 못지않게 길고 어려울지도 모르겠다. 

반응형
반응형

시작하기에 앞서 mkdir과 같이 생성하는 명령어임에는 동일하지만 다른점은 mkdir은 디렉토리를 우리가 3번의 걸쳐 배울 생성 명령어들은 파일을 생성하는 명령어라는 것이다. 파일 생성 명령어는 touch, cat, vi를 순차적으로 진행할 예정이다. 그럼 시작해보자.


touch

* 기본 형식

touch (옵션) (이름)

위와 같이 파일을 생성할 수 있는 명령어이지만 사실 파일의 시간과 관련된 사항을 만지는데 사용하기도 한다. 옵션들과 함께 알아보도록 하자.

 

먼저 우리는 이전에 배웠던 stat 명령어를 이용해 touch 명령어를 비교해볼 것이다. 아래에 표시한 시간의 특징은 다음과 같다.

  • Access : 파일을 읽어오거나 실행했을 때으 시간으로 파일에 접근한 시간을 말한다.
  • Modify : 파일의 내용이 변경된 시간을 나타내며, 파일의 내용이 변경됐을 때 이 시간이 갱신된다.
  • Change : 파일의 내용이 아닌 권한, 소유자, 링크 수 등이 변경된 시간을 나타낸다. 권한과 소유자에 대한 내용은 조만간 정리해서 올려보도록 하겠다.
  • Birth : 파일이 처음 생성된 시간으로 이 시간은 변하지 않는다. 하지만 이 시간은 모든 운영체제에서 지원하는 것은 아니라서 없을 수 있다.


옵션

-a

파일의 최근 접근 시간만 변경한다.

Change는 마지막 수정일 이라고 보면 편할 것 같다. 뭐가 바뀌어도 최신화가 된다.

-m

파일의 최근 수정 시간(modification time)을 변경한다.

-r

다른 파일의 시간 정보를 이용해 파일의 시간 정보를 변경한다.

시간은 b.txt의 시간으로 적용이 되었으나 최종 변경 시간은 1분 뒤인 56분이라 change는 이 시간으로 적용 되었다.

-c

파일이 이미 존재하는 경우에도 파일의 access time과 mdify time을 현재 시간으로 변경하도록 지정한다.

현재 시간으로 바뀐것을 볼 수 있다.

-t

사용자가 시간을 직접 지정해서 변경할 수 있는 옵션이다. 숫자는 YYYYMMDDhhmm.SS로 각각 다음을 의미한다.

  • YYYY : 연
  • MM : 월
  • DD : 일
  • hh : 시
  • mm : 분
  • SS : 초

미래에서 온 파일이 되었다.


이 외에도 2가지 파일 생성 명령어가 있는데 각기 다른 특징을 지니고 있고 특히 vi 명령어는 내용이 엄청나게 길어질 것으로 예상된다. 리눅스를 시작하는 이들에게 도움이 되었으면 하며 이번에는 여기서 마치도록 하겠다.

반응형