728x90
파일 링크
ln 명령
- 파일의 링크를 생성
- 형식 : ln [옵션] 원본파일명 링크파일명
- 옵션
- -s : 심볼릭 링크 파일 생성
- 사용 예 : ln test lntest, ln –s test lntest
하드 링크
- 하나의 파일에 둘 이상의 다른 이름을 붙일 수 있음
- 파일에 붙인 이름을 하드 링크, 이름이 붙여진 파일을 하드 링크 파일
- 예제
- 파일의 종류는 일반 파일
- 하드 링크 수는 1
- 원본 파일이 한 개이고 파일 이름의 개수가 1이므로 하드 링크 수가 1
$ cat > ln.txt
This is the first ln test.
^D
$ ls –l ln.txt
-rw--r--r-- 1 ksshin ksshin 27 6월 12 16:56 ln.txt
$
하드 링크 파일
- ln 명령 사용하여 기존 파일에 새로운 이름 부여
- 두 파일 모두 하드 링크 수가 2
- 하나의 파일에 두 개의 이름이 붙여졌으므로 링크 수 증가
- ln.txt와 ln.hd 파일이 동일한 파일임을 확인 (파일 내용으로 확인)
$ ln ln.txt ln.hd
$ ls –l ln.*
-rw--r--r-- 2 ksshin ksshin 27 6월 12 16:56 ln.hd
-rw--r--r-- 2 ksshin ksshin 27 6월 12 16:56 ln.txt
$
$ cat ln.txt
This is the first ln test.
$ cat ln.hd
This is the first ln test.
$
하드 링크와 파일 복사의 차이
- 파일을 복사해도 내용은 같지만 다른 파일임
- 같은 파일인지 알 수 있는 방법은 inode를 확인하는 것
- 하드 링크의 경우 inode 값이 같음
- ls –i 옵션으로 inode 확인 가능
$ ls –i ln*
133938 ln.hd 133938 ln.txt
$
- 파일을 복사한 경우 inode 값이 다름
- 파일 복사한 경우의 하드 링크 수와 inode 값 확인
$ cp ln.txt ln1.txt
$ ls –l ln*
-rw--r--r-- 1 ksshin ksshin 27 6월 12 17:07 ln1.txt
-rw--r--r-- 2 ksshin ksshin 27 6월 12 16:56 ln.hd
-rw--r--r-- 2 ksshin ksshin 27 6월 12 16:56 ln.txt
$ ls –i ln*
134032 ln1.txt 133938 ln.hd 133938 ln.txt
$
하드 링크 파일과 원본 파일의 변경
- ln.hd 파일의 내용을 변경하면 ln.txt의 내용도 같이 변경됨
$ ls –i ln.* >> ln.hd
$ cat ln.txt
This is the first ln test.
133938 ln.hd
133938 ln.txt
$
- ln.txt 파일을 삭제한 후 ln.hd 파일의 변화
- 하드 링크 수가 1로 바뀌고 내용은 변화 없음
$ rm ln.txt
$ ls –l ln.*
-rw--r--r-- 1 ksshin ksshin 27 6월 12 16:56 ln.hd
$ cat ln.hd
This is the first ln test.
133938 ln.hd
133938 ln.txt
$
심볼릭 링크
- 윈도우의 바로가기 아이콘과 같음
- 원본 파일에 쉽게 접근하기 위해 생성한 특수 파일
- 파일의 내용은 원본 파일의 경로
- 링크 파일을 복사하거나 내용을 출력하면 모든 작업이 원본 파일에 대해 수행됨
- 원본 파일이 삭제되면 심볼릭 링크 파일이 남아있어도 그 파일을 사용할 수 없음
심볼릭 링크 파일
- ln 명령에 –s 옵션을 사용하여 만듦
- 특징
- 파일 종류 : l, 심볼릭 링크로 표시됨
- 하드 링크 수 : 1, 이름 추가가 아님
- 파일 이름 : 파일 이름 뒤에 원본 파일의 이름이 표시됨 (->ln.hd)
- inode 번호 : inode 번호가 다른 별개의 파일임
$ ln –s ln.hd ln.sl
$ ls –l ln.*
-rw--r--r-- 1 ksshin ksshin 27 6월 12 16:56 ln.hd
lrwxrwxrwx 1 ksshin ksshin 5 6월 12 17:25 ln.sl -> ln.hd
$ ls –i ln.*
133938 ln.hd 134106 ln.sl
$
하드 링크 파일과 심볼릭 링크 파일
- 공통점
- 심볼릭 링크 파일을 수정하면 원본이 수정됨
$ pwd >> ln.sl
$ cat ln.hd
This is the first ln test.
133938 ln.hd
133938 ln.txt
/home/ksshin
$
- 차이점
- 원본 삭제하면 하드 링크는 새로운 이름 사용 가능, 심볼릭 링크는 사용 불가
- 하드 링크는 디렉토리 설정할 수 없지만 심볼릭 링크는 설정 가능
$ rm ln.hd
$ cat ln.sl
cat: ln.sl: No such file or directory
$
파일 생성 및 수정 시각 변경
###touch 명령
- 빈 파일을 생성하거나 파일 수정 시각을 변경
- 형식 : touch [-acm] [-r ref_file] [-t time] 파일
- 옵션
- -a : 접근 시간만 변경
- -c : 지정된 파일이 없는 경우 새로 생성하지 않음
- -m : 수정 시간만 변경
- -r ref_file : 시각을 파일에서 읽음
- -t [[CC]YY]MMDDhhmm[.ss] : 시각을 직접 입력
- 사용 예 : touch test
파일 생성
- 지정한 파일이 존재하지 않으면 내용 없는 빈 파일 생성
- touch 명령 실습을 위해 디렉토리 생성
$ mkdir Touch
$ cd Touch
$ ls test
ls: cannot access test: No such file or directory
$
- touch 명령 입력
$ touch test
$ ls –l test
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:18 test
$
- 기존에 없던 test 파일 생성, 파일 크기 0으로 내용 없이 파일 정보만 존재
- 여러 파일을 한꺼번에 생성
$ touch t1 t2
$ ls
t1 t2 test
$
- 생성된 파일의 종류는 일반 파일이므로 vi 에디터를 이용해 내용 편집 가능
- touch 명령 이용해 빈 파일 생성하는 이유
- 테스트를 위해 내용에 상관없이 파일만 필요한 경우
- i. 유닉스의 파일 명령 연습할 때
ii. 쉘 특수 문자 테스트를 위해 다양한 이름의 파일 생성 - 유닉스 시스템 관리를 할 때 필요에 의해
파일 접근 및 수정 시각 변경
- 인자로 지정한 파일이 존재하면 해당 파일의 접근 및 수정 시각 변경
현재 시각으로 변경하기
- touch 명령을 옵션 없이 사용
$ ls –l
total 4
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t1
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t2
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:18 test
$ touch t1
$ ls –l t1
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:35 t1
$
지정한 시각으로 변경하기
- -t 옵션 사용
- 시각 표시 형식
- 형식 : [[CC]YY]MMDDhhmm[ss]
- 옵션
- i. CC : 연도의 첫 두 자리
ii. YY : 연도의 마지막 두 자리
iii. MM : 달(01~12 범위내 지정)
iv. DD : 날짜(01~31 범위내 지정)
v. hh : 시각(00~23 범위내 지정)
vi. mm : 분(00~59 범위내 지정)
vii. ss : 초(00~59 범위내 지정) - CC를 지정하지 않으면 YY 값에 따라 CC를 자동으로 인식
- 연도를 지정하지 않고 월, 일, 시각만 지정한 예
$ touch –t 05311830 test
$ ls –l
total 4
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t1
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t2
-rw-rw-r-- 1 ksshin ksshin 0 5월 31 18:30 test
$
- 연도 네 자리를 모두 지정한 예
$ touch –t 200501010000 test
$ ls –l
total 4
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t1
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t2
-rw-rw-r-- 1 ksshin ksshin 0 1월 1 2005 test
$
특정 파일 기준으로 변경하기
- 특정 파일과 접근, 수정 시각을 일치시키고 싶을 때 –r 옵션 사용
$ touch –r t1 test
$ ls –l
total 4
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t1
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t2
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 test
$
수정, 접근 시각 선택 변경하기
- 수정 시각만 변경하고 싶으면 –m 옵션 사용
- 접근 시각만 변경하고 싶으면 –a 옵션 사용
- 접근 시각만 변경한 경우 ls –ul 옵션을 사용해야 결과 확인 가능
$ touch –a –t 05311830 test
$ ls –l
total 4
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t1
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t2
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:18 test
$ ls –ul
total 4
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t1
-rw-rw-r-- 1 ksshin ksshin 0 6월 8 21:20 t2
-rw-rw-r-- 1 ksshin ksshin 0 5월 31 18:30 test
$
728x90
'프로그래밍 > Unix' 카테고리의 다른 글
유닉스 편집기 (vi) - 내용 수정 및 삭제 (0) | 2020.03.23 |
---|---|
유닉스 편집기,에디터 (vi) (0) | 2020.03.23 |
유닉스 복사, 삭제, 이동 (0) | 2020.03.23 |
유닉스 파일 내용 보기 (0) | 2020.03.23 |
유닉스 디렉토리 이름 변경 및 검색 (0) | 2020.03.23 |