ls -l file1 -rw-r--r-- 1 root root 1945 6월 11 14:13 file1
File Type:
Permission Mode: chmod
Link Count: ln
Owner: chown
Group: chgrp
File Size:
Mtime: touch -t
File Name: mv
chown 명령어
-c : 바뀌어지는 파일들에 대해서만 자세하게 보여준다.
-f : 바뀌어 지지 않는 파일들에 대해서 오류 메시지를 보여주지 않는다.
-v : 작업 상태를 자세히 보여준다.
-R : 경로와 그 하위 파일들 모두를 바꾼다.
#chown user01 file1
#chown user01.other file1
#chown user01:other file1
#chown .other file1
#chown -R user01 dir1
chgrp 명령어
-c : 바뀌어지는 파일들에 대해서만 자세하게 보여준다.
-f : 바뀌어 지지 않는 파일들에 대해서 오류 메시지를 보여주지 않는다.
-v : 작업 상태를 자세히 보여준다.
-R : 경로와 그 하위 파일들 모두를 바꾼다.
#chgrp oter file1
#chgrp -R other dir1
파일의 사용자 그룹을 변경한다.
chgrp [옵션] [그룹] [파일]
옵션
-c: 변경된 파일만 자세하게 보여준다.
-f: 변경되지 않은 파일에 대해서 오류 메시지를 보여주지 않는다.
-v: 작업상태를 자세히 보여준다.
-R: 경로와 그 하위 파일들을 모두 변경한다.
--help: 도움말을 출력한다.
--version: 버전 정보를 보여준다.
myfile1의 그룹을 다시 corej로 변경해 보자.
[root@localhost ~]# chgrp corej myfile1
[root@localhost ~]# ll myfile1
-rwxr-xr-x 1 corej corej 0 Feb 10 10:10 myfile1
chmod 명령어
#chmod u+w file1
#chmod g+x,o+x file1
#chmod u-r file1
#chmod 755 file1
#chmod u-wx file1
#chmod a=rwx file1
u user 파일/디렉토리의 소유자
g group 파일/디렉토리의 그룹
o other 다른 사용자
a all 소유자, 그룹, 다른 사용자 모두(아무 표시 안할 경우 기본적으로 설정됨)
기호 설명
+ 퍼미션 허가 지정한 퍼미션을 허가한다.
- 퍼미션 금지 지정된 퍼미션을 금지시킨다.
= 퍼미션 지정 지정한 퍼미션만 허가하고 나머지는 금지 시킨다. 설명 : 이전에 권한을 어떻게 줬던 지금 설정해주는 권한으로 대체시켜서 사용 가능 (+,-는 내가 이전에 어떠한 권한을 설정해 줬는지 확인해야 하지만 =는 이전에 어떻게 설정하였던 상관없이 설정이 가능한 것이다.)
심볼의 정의
u(User)
g(Group)
o(Other)
a(all)
+(Add)
-(Deny)
=(equal)
r(Read)
w(Write)
x(Excute)
소유자권한비트 그룹권한비트 기타권한비트
r w x r w x r w x
1 1 1 1 1 1 1 1 1
4 2 1 4 2 1 4 2 1
파일 퍼미션
r(read) :파일 읽을 수 있는 권한
w(write):파일 수정할 수 있는 권한
x(excute):파일 실행할 수 있는 권한
디렉토리 퍼미션
r(read):디렉토리에서 ls CMD 수행권한
w(write): 디렉토리안의 파일들의 생성과 삭제를 할 수 있는 권한
x(excute) : 디렉토리 내부로의 cd CMD 수행할 수있는 권한
--- : 권한 없음 0 000
--x : 실행 권한 1 001
-w- : 쓰기 권한 2 010
-wx : 쓰기 실행 3 011
r-- : 읽기 권한 4 100
r-x : 읽기 실행 5 101
rw- : 읽기 쓰기 6 110
rwx : 읽기 쓰기 실행 7 111
(파일과 디렉토리의 퍼미션의 정확한 의미)
----------------------------------
파일 디렉토리
----------------------------------
r (ls CMD)
w (생성 & 삭제)
x (cd CMD)
----------------------------------
/exam 디렉토리에는 team01-team10사용자를 위한 공용 디렉토리도 존재한다. 누구나 파일을 생성 할 수 있지만 소유자 외에는 파일 삭제를 할 수 없는 디렉토리
# chmod 1777 team
umask 명령어 (파일과 디렉토리가 생성 시 기본 퍼미션을 조정)
파일이나 디렉토리 생성시에 파일과 디렉토리에는 기본적으로 적용되는 퍼미션이 있다. 기본적으로 설정되는 퍼미션의 경우 umask에 의해 결정이 된다. umask는 디렉토리와 파일의 기본 퍼미션을 결정해주는 명령어이다.
관리자 : /etc/bashrc
사용자: $HOME/.bashrc
#umask
0022
(666 - 022 = 644)
(777 - 022 = 755)
■ Default Permission File Directory
-------------------------------------------
666 777 666 777
022 022 027 027
-------------------------------------------
644 755 640 750
# umask 027
# umask
0027
■ Default Permission File Directory
------------------
666 777
027 027
------------------
640 750
/etc/bashrc 파일에 등록된 umask
SetUID / SetGID
파일에 대한 소유권을 잠시 다른 사용자에게 빌려 줌으로 인해 소유권이 없는 사용자가 잠시 동안 파일에 대한 소유권으로 권한을 행사 할 수 있는 것을 말한다.
패스워드를 변경할 수 있는 권한을 root의 권한, 일반사용자도 사용하기 위해서는 /usr/bin/passwd실행파일의 권한이 root의 SetUID 권한이 부여
[특수권한 SetUID, SetGID, sticky bit 퍼미션]
특수권한 소유자권한비트 그룹권한비트 기타권한비트
SetUID SetGID sticky-bit r w x rw x r w x
1 1 1 1 1 1 1 1 1 1 1 1
4 2 1
천 백 십 일
# chmod 4755 file1
# chmod 6755 file1
(0755 : rwxr-xr-x)(0755 : rwxr-xr-x)
(4755 : rwsr-xr-x)(6755 : rwsr-sr-x)
# chmod 2755 file1
(0755 : rwxr-xr-x)
(2755 : rwxr-sr-x)
# chmod 1777 dir1
(0777 : rwxrwxrwx)
(1777 : rwxrwxrwt)
stiky bit
파일에 쓰기 권한 없어도 디렉토리에 쓰기 권한이 있는 경우 디렉토리 권한에 의해 파일은 삭제 된다. 특정 디렉토리의 경우 공유의 목적으로 사용 할 때 사용자들에 의해 파일이 생성 될 수 있으나 디렉토리에 파일을 마음대로 삭제 할 수 없도록 sticky 권한을 부여해 줄 수 있다
t권한 표기
# chmod 1777 dir1 (drwxrwxrwx -> drwwrwxrwt)
# chmod 1001 dir1 (d--------x -> d--------t)
# chmod 1776 dir1 (drwxrwxrw- -> drwxrwxrwT)
#id
uid=1002(user01) gid=1002(user01) groups=1002(user01) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
파일: 읽기,쓰기,실행 권한
디렉토리 : 파일 삭제, 수정, 명령어(ex: ls -l) 실행 권한
setuid, setgid bit가 설정이 되면서 x문자를 더이상 확인이 불가능하다. 그렇기 때문에 s와 S를 사용하여 현재 자리가 x문자 (실행권한) 유무를 표시한다.
s -> 실행권한이 있음
S -> 실행권한이 없음
stiky-bit
chmod 1755 . //sticky bit 현재 디렉토리의 각 user 사용자가 만든 file은 각 사용자만 삭제,수정가능 다른 사용자가 다른 사람의 file들을 삭제 못하게 함
해당 그룹만 접근 가능하게..
groupadd -g 60000 project
usermod -aG progect team01
usermod -aG progect fedora
groups fedora
groups team01
chown root.project /test
각 해당 계정으로 들어가서 확인
다른 user 계정으로는 해당 디렉토리에 접근 못함
diff 명령어(비교 명령어)
# diff file1 file2/* 두 개의 파일에 대한 간략한 차이점 */
# diff -c file1 file2 /* 두 개의 파일에 대한 자세한 차이점 확인 */
# diff -i file1 file2 /* -i : 대소문자를 구분하지 말아라. A와 a는 같은 것으로 간주 */
--brief : 두 파일의 내용이 같은지 다른지 알아봄
-c : 파일의 이름, 날짜 등 파일의 차이점을 상세히 출력
-d : 두 디렉토리간의 차이점 출력
-H : 용량이 큰 파일 비교 시 속도를 빠르게 비교
-i : 대소문자 구분하지 않음
-r --recursive : 두 디렉토리를 비교할때, 모든 서브디렉토리는 재귀적으로(recursively) 비교한다.
# diff file1 file3 [ cmp와 달리 파일의 틀린 라인을 표시해 준다 좌 : < , 우 : > ]
# diff -i file1 file2 (-i : ignore case, 대소문자 구분하지 않음)
# diff --recursive dir1 dir2 /* -r 옵션으로도 사용가능) */
# diff --recursive dir1 dir2 두 디렉토리를 비교할 때 사용한다
[추가 작업을 할시]
# du -sk /was1
# du -sk /was2
sort 명령어
sort 명령어는 공백 문자(white space: space, Tab)를 필드 구분자로 인식한다
# sort /etc/passwd
# sort –r /etc/passwd /* -r : reverse */
# sort -k 3 filename /* -k : key */
# sort -t : -k 3 –n /etc/passwd /* -t : seperate, -n : numeric */
-n : 숫자로 정렬한다.
-r : 내림차순으로 정렬한다. 기본은 오름차순으로 정렬하는 것이다.
-o : 출력 결과를 파일에 저장한다.
-t : 필드 구분자를 지정한다. (기본값은 공백이 기준이 된다)
-k : 정렬할 필드를 지정한다.
# sort sortfile1 /* 첫 번째 필드를 기준으로 정렬 */
# sort -r sortfile1 /* 내림차순으로 정렬 */
# sort -k 3 -n sortfile1 /* 세 번째 필드를 기준으로 숫자로 정렬 */
# sort -t : -k 1 /etc/passwd /* -t (seperate) 구분자로 :사용, 기준으로 첫번째 행 정렬 */
# sort -t : -k 3 -n /etc/passwd
#CMD | sort
#CMD | sort -r
#CMD | sort -nr
#ps -ef | head| sort
#ps -ef | head| sort -r
#ps -ef | head| sort -k 3
#ps -ef | head| sort -k 3 -r
디렉토리 용량 확인 하는 법
#du -sh /* 2> /dev/null
#du -h .
#df -h | sort -k 4
#df -h | sort -k 4 -r (df명령어에서는 sort 시에 -h 옵션을 사용하지 말자)
# du -sk /var /* -s : sum, -k : Kbytes */
191416 /var
# cd /var # du -sk * | sort
12 account
146552 lib
16 empty
...
# du -sk * | sort -n /* 첫번째 열을 숫자로 정렬 */
# du -sk * | sort -nr | more /* 첫번째 필드열 역순으로 정렬 */
file 명령어 (파일의 종류를 알 수 있는 명령어)
# file /etc/passwd
# file /etc/passwd /* ASCII파일 (# cat /etc/passwd) */
# file /bin/ls /* Binary 파일 (# strings /bin/ls) */
# file /var/run/utmp /* Date 파일 */
# file /etc/rc.d/init.d/sendmail /* Script 파일 */
# file /etc/hosts /etc /* 여러개의 파일 지정 */
rpm보다 dnf 명령어 사용하면 의존성 문제를 해결할 수 있다.
grep 명령어
파일 내 특정 패턴 검색 하여 그 패턴에 포함하는 라인을 화면에 출력
# grep root /etc/passwd (# cat /etc/passwd | grep root)
# CMD | grep root
# cat /etc/passwd | grep root
# rpm -qa | grep sshd
# ps -ef | grep socket
(옵션 사용법) "# grep OPTIONS PATTERN file1"
# grep -l root /etc/hosts /etc/passwd /etc/group /* 여러 파일 중 검색 문자열 존재 파일 출력 */
# grep -n root /etc/group /* -n: number line, 파일에서 root 문자열을 검색하고 라인 번호도 같이 출력
# cat -n /etc/passwd | grep root */
# grep -v root /etc/passwd /* -v: inverse, 파일에서 검색 문자열을 제외하고 나머지 출력 */
# grep -i root /etc/passwd /* -i: ignore case, 파일에서 검색 문자열의 대소문자를 구분하지 않음 */
# grep -w root file1 /* -w: word , 단어의 일부분이 아닌 단어의 전체가 일치하는 경우 출력 */
# grep --color root /etc/passwd
#grep -lr ens33 /etc /* 파일위치 찾음*/
/etc/sysconfig/network-scripts/ifcfg-ens33
-l : (-l : list files) 패턴이 있는 파일이름만을 출력한다.
-n : (-n : number line) 패턴을 포함하는 줄을 출력할 때 줄번호와 함께 출력한다.
-v : (-v : inVerse, except) 패턴을 포함하는 줄을 제외하고 출력한다.
-c : (-c : count) 패턴을 찾은 줄의 수를 출력한다.
-i : (-i : ignore case, 대문자/소문자) 패턴을 찾을 때 대소문자를 구분하지 않는다.
* # grep 'ro*t' /etc/passwd 모든문자를 포함(영문자,숫자) .
# grep 'no...y' /etc/passwd (.에 하나의 영문자나 숫자를 치환) ^root
# grep '^root' /etc/passwd 라인의 시작이 root인 라인을 검색 root$
# grep 'root$' /etc/group 라인의 끝이 root로 끝나는 라인을 검색 [abc]
# grep 'user0[123]' /etc/passwd user0으로 시작하여 1이나 2나,3으로 끝나는 문자열
# rpm -q postfix
# rpm -qa postfix
# rpm -qa | grep postfix
특정패턴 여러개 검색
# cat /var/log/messages | egrep -i '(warn|err|crit|alert|emerg)'
# cat /etc/passwd | egrep -i '(root|fedora)'
grep : 강력한 패턴 매칭 템플릿을 정의하기 위해 "정규 표현식"을 사용할 수 있다.
egrep[옵션] "패턴|패턴|..." [대상파일들] : 확장된 정규 표현식을 사용하며, 찾아낼 패턴을 여러개 지정할 수 있다. '|'기호는 불린 연산자 "OR"에 해당하므로, 정해진 패턴들에 포함되는 모든 라인을 보여준다.
fgrep[옵션] 패턴 [대상파일들] : 패턴과 정확히 일치하는 것만을 찾아 준다.
■ fgrep(Fixed grep) CMD
# fgrep '^root' file1
# egrep "fedora|root" /etc/passwd
# egrep -v "fedora|user01" /etc/passwd (# egrep -v "(fedora|user01)" /etc/passwd)
system 문자가 들어있는 모든 파일을 찾고 해당 파일들의 목록을 /training 디렉토리에 exam1로 저장
grep -lr system /test > /training/exam1
grep [OPTION...] PATTERN [FILE...]
-E : PATTERN을 확장 정규 표현식(Extended RegEx)으로 해석.
-F : PATTERN을 정규 표현식(RegEx)이 아닌 일반 문자열로 해석.
-G : PATTERN을 기본 정규 표현식(Basic RegEx)으로 해석.
-P : PATTERN을 Perl 정규 표현식(Perl RegEx)으로 해석.
-e : 매칭을 위한 PATTERN 전달.
-f : 파일에 기록된 내용을 PATTERN으로 사용.
-i : 대/소문자 무시.
-v : 매칭되는 PATTERN이 존재하지 않는 라인 선택.
-w : 단어(word) 단위로 매칭.
-x : 라인(line) 단위로 매칭.
-z : 라인을 newline(\n)이 아닌 NULL(\0)로 구분.
-m : 최대 검색 결과 갯수 제한.
-b : 패턴이 매치된 각 라인(-o 사용 시 문자열)의 바이트 옵셋 출력.
-n : 검색 결과 출력 라인 앞에 라인 번호 출력.
-H : 검색 결과 출력 라인 앞에 파일 이름 표시.
-h : 검색 결과 출력 시, 파일 이름 무시.
-o : 매치되는 문자열만 표시.
-q : 검색 결과 출력하지 않음.
-a : 바이너리 파일을 텍스트 파일처럼 처리.
-I : 바이너리 파일은 검사하지 않음.
-d : 디렉토리 처리 방식 지정. (read, recurse, skip)
-D : 장치 파일 처리 방식 지정. (read, skip)
-r : 하위 디렉토리 탐색.
-R : 심볼릭 링크를 따라가며 모든 하위 디렉토리 탐색.
-L : PATTERN이 존재하지 않는 파일 이름만 표시.
-l : 패턴이 존재하는 파일 이름만 표시.
-c : 파일 당 패턴이 일치하는 라인의 갯수 출력.
find 명령어
디렉토리안에서 원하는 파일 찾고자 할 때 사용하는 명령어
# find / -name core –type f
# find / -user user-1 –group class1
# find / -mtime [-7|7|+7]
# find / -perm [755|-755]
# find / -size [-300M|300M|+300M]
# find / -name core –type f –exec rm –f {} \;
# find / -name core –type -ls
# find / -name core –type f –ok rm {} \;
# find /Log_Dir –name "*.log" –type f \
> -mtime +30 –exec rm 0rf {} \;
# find /Log_Dir –mtime -2 –size +1G –type
# find [검색시작위치] [옵션1] [인자값1] [옵션2] [인자값2] ...
-name : 파일 이름을 기준으로 검색
-iname: 대소문자를 구별하지 않고 파일 이름을 기준으로 검색
-perm : 파일 권한을 기준으로 검색한다.
-type : 파일의 종류를 기준으로 검색
b : 블록 파일
c : 문자
d : 디렉토리
f : 파일
l : 링크
s : 소켓
-size : 파일의 크기를 기준으로 검색
+n : n보다 크다
-n : n보다 작다
n : n이다
b : 512-byte
c : Bytes (Character = Byte)
k : Kilo Byte
M : Mega Bytes
G : Giga Bytes
w : 2-byte
-links : 링크의 개수를 기준으로 검색
-user : 사용자 ID를 기준으로 검색
-group: 그룹 ID를 기준으로 검색
-atime : 특정 기간 이상 접근하지 않은 파일을 기준으로 검색
-mtime : 특정 기간 이상 수정되지 않은 파일을 기준으로 검색
-inum : number 지정된 inode 번호와 파일을 찾는다.
-print : 표준출력으로 검색된 파일 출력: GNU는 디펄트, Unix는 필수 입력
-exec command {} ₩; :찾은 각 파일에 대해 지정된 명령을 실행
-ok command {} \; : 실행여부(실행 되어 있는지 아닌지)를 사용자에게 확인 후 명령을 실행
(형식1) # find / -name core -type [f|d] (# find / -name "*oracle*" -type f)
(형식2) # find / -user user01 -group class1
(형식3) # find / -mtime [-7|7|+7]
(형식4) # find / -perm [-755|755]
(형식5) # find / -size [-300M|300M|+300M]
(형식6) # find / -name core -type f -exec rm {} \;
파일 이름 검색(예: # find / -name core –type f)
사용자/그룹 검색(예: # find / -user user01 -group class1)
날짜 검색(예: # find / -mtime 7)
퍼미션 검색(예: # find / -perm 755 -type f)
파일 크기 검색(예: # find / -size 50k -type f)
디렉토리안에 특정한 패턴을 가진 파일들을 삭제(# find / -name file -type f -exec rm {} \;)
find 명령어에서 -exec 옵션에서 세미콜론(;)의 역할 find 명령어를 사용하면서 출력된 결과를 가지고 바로 후처리 실행으로 이어질수 있는 옵션인 exec ok가 존재한다. 해당 문법의마지막에는 세미콜론(;)이 입력된다. 하지만 쉘에서는 세미콜론(;)을 기준으로 앞 명령어와 뒤 명령어를 구분하는 구분자로 사용하기 때문에 그냥 사용할수는 없으며 바로 앞에 역슬래시를 붙여 \; 구조로 만들어줘야 find 명령어에서 정상적으로 해석가능하다.
한달(시스템 생성일 ~ 30일)이 지난 로그파일은 그 의미를 상실하게 된다. 따라서 일정 시간이 지난 로그파일의 경우 find라는 명령어를 이용하여 파일을 주기적으로 삭제해 주도록 한다.
# find /Log_Dir1 -name "*.log" -type f -mtime +30 -exec rm –f {} \;
# find /Log_dir2 -name "*.log" -type f -mtime +60 -exec rm –f {} \;
파일시스템이 갑자기 풀(Full) 나는 경우
# find /var -mtime -2 -size +1G –type f
# find /var -mtime -2 -size +512M -type f /var/server/log/file.log
[참고] lsof(list open file) # lsof | grep /var/server/log/file.log
(실무 예) 에러메세지가 들어 있는 startup script 검색
# /was/bin/startup.sh ..... Server Error .....
# find /was –type f –exec grep –l 'Server Error' {} \;
/was/conf/server.xml
# vi /was/conf/server.xml
/Server Error ......
if 조건 ;
then else
echo "Server Error"
fi
실무 예) 에러 메세지를 검색하는 방법
-> site:.redhat.com "Server Error"
-> 가상화 .pdf
-> 가상화 .ppt
-> "Server Error1" AND "Server Error2" (AND/OR)
-> "Server Error1"
echo 명령어
#echo 인수-<변수>로 지정된 문자열을 화면에 출력
#var=5
#echo $var
5
#bash < 하위쉘 실행
#echo $var
--> 아무것도 안나옴, var변수가 지역변수로 현재 쉘을 실행하지 않음
#LANG=C지역변수
#export LANG=C 환경변수
지역변수로 생성 시 현재 쉘을 벗어나지 못함
해당 쉘을 빠져나가거나 기존 사용된 변수를 사용할 수 없다
상웨쉘로는 전파가 안됨
환경변수
현재쉘과 하위쉘 모두 적용됨
사용자가 변경하기 전까지는 기존 변수 값을 그대로 상속 받음
#var =5
#export var
#echo $var
5
#bash <--하위쉘로 감
#echo $var
5
변수삭제
#unset var
env로 확인시 나오며 환경변수, 안나오면 지역변수
#env | grep ^var 또는
#set | grep ^var
#vi test.sh
#!/bin/bash <--하위쉘 실행
test=linux
echo $test
unset test
#sh -x test.sh // -x 디버그 모드 옵션
touch 명령어
파일의 이름을 지정하였다면 기존에 존재하지 않는 빈 파일을 만들어주고 기존에 존재하는 파일이라면 지정된 파일이나 디렉토리의 수정시간(mtime, Modify Time)이나 접근시간(atime, Access Time)등을 현재 시간으로 업데이트 시켜준다.
# touch file2 /* file2 파일 1개 생성 */
# touch file1 file2 /* file1, file2 파일 2개 생성 */
# touch -t 08081230 file1 /* file1 수정 시간 변경(월,일,시,분) */
-a : 최근 파일 사용기간만 변경
-c : 파일을 생성하지 않는 명령어
-d [시간] : 현재 시간 대신 지정한 시간(시분)으로 변경
-m : 최근 파일 변경 시간만 변경 (파일 수정시간)
-r [파일] : 현재 시간 대신 지정한 파일의 시간으로 변경
-t MMDDhhmm [[CC]YY][.SS] : 현재 시간 대신 지정한 시간(월일시분)으로 변경
-. 파일시간정보를 현재시간으로 변경하기(-c옵션)
touch file1
touch -c file1
touch명령어가 다루는 파일의 timestamps부터 살펴보겠다.
timestamps는 총 3가지가 있다.
ctime = 파일의 속성변경시간(chown, chmod등으로)
atime = 최근에 파일이 최근 읽혀진 시간, 최근 사용시간이라고 함(access time)
mtime = 최근에 파일이 변경된 시간(modification time)
ctime은 ls-lc명령어를 사용시 나타나는 시간
atime 은 ls -lu명령어를 사용시 나타나는 시간
mtime은 ls -l명령어를 사용시 나타나는 시간
-. 파일시간정보를 현재시간으로 변경하기(-c옵션)
touch file1
touch -c file1
둘중 아무거나 써도 file1의 timestamps는 변경되지만, 차이점은
-c옵션인자를 썻을경우 file1이 존재하지 않으면 그냥 무시되지만
-c옵션인자를 쓰지 않으면 file1존재 하지 않으면 file1이라는 크기0짜리의 파일을 생성한다.
-. 사용자가 원하는 시간으로 timestamps변경하기(-t옵션)
형식 : touch -t [[CC]YY]MMDDhhmm 대상파일
ex)
[root@os1 /work/touch]# ls -l testfile1 #시간변경전
-rw-r--r-- 1 root root 0 2013-01-04 02:18 testfile1
위 파일을 각각 다른인자를 줘서 변경하였을경우
[root@os1 /work/touch]# touch -t 198702180405 testfile1 #YYYYMMDDhhmm
[root@os1 /work/touch]# ls -l testfile1
-rw-r--r-- 1 root root 0 1987-02-18 04:05 testfile1
[root@os1 /work/touch]# touch -t 8702180405 testfile1 #YYMMDDhhmm
[root@os1 /work/touch]# ls -l testfile1
-rw-r--r-- 1 root root 0 1987-02-18 04:05 testfile1
[root@os1 /work/touch]# touch -t 02180405 testfile1 #MMDDhhmm
[root@os1 /work/touch]# ls -l testfile1
-rw-r--r-- 1 root root 0 2013-02-18 04:05 testfile1
-. 다른파일 timestamps 동일하게 맞추기(-r옵션)
형식 : touch -r [시간을 가져올파일] [시간을 수정할 파일]
-rw-r--r-- 1 root root 0 2013-02-18 04:05 testfile1
-rw-r--r-- 1 root root 0 2002-06-18 20:22 testfile2
testfile2의 timestamps정보를 가져와서 testfile1에 timestamps정보를 수정해보도록 하겠다.
[root@os1 /work/edu-touch]# touch -r testfile2 testfile1
[root@os1 /work/edu-touch]# ls -l
-rw-r--r-- 1 root root 0 2002-06-18 20:22 testfile1
-rw-r--r-- 1 root root 0 2002-06-18 20:22 testfile2
※ timestamps 포맷 변경하는방법
옵션없을때의 시간출력형태
timestamps의 날짜가 date의 연도가 같을경우 형식 = [MM] [DD] [hh:mm]
timestamps의 날짜가 data의 연도가 다를경우 형식 = [MM] [DD] [YYYY]
[root@os2 ~]# ls -l anaconda-ks.cfg
-rw------- 1 root root 970 Dec 31 08:21 anaconda-ks.cfg #연도가 같을때
-rw------- 1 root root 970 Feb 2 1987 anaconda-ks.cfg #연도가 다를때
--time-style=long-iso옵션을 줬을때 시간출력 형태
YYYY-MM-DD hh:mm
[root@os1 ~]# ls -l --time-style=long-iso anaconda-ks.cfg
-rw------- 1 root root 970 2012-12-31 02:33 anaconda-ks.cfg
'linux' 카테고리의 다른 글
linux - 기본II (0) | 2020.12.07 |
---|---|
centos8 vi 편집기 (0) | 2020.12.02 |
Centos - telnet 접속 (0) | 2020.11.30 |
centos - ssh에서 root접속 제한 (0) | 2020.11.25 |
linux - 기본 (0) | 2020.11.25 |