#chmod directory 내에 f1 파일과 test3 디렉터리가 있었다
chmod o-r f1
# f1 파일의 other 에서 read 권한을 제거(-)한다
chmod o+w f1
# f1 파일의 other 에서 write 권한을 추가(+)한다
chmod 444 f1
# f1 파일에 444 권한 (r--r--r--)를 부여한다
링크 만들기: ln
ln [options] target ... [link_name]
링크란? 하나의 파일 실체에 대해 여러 개의 접근 경로를 설정할 수 있고, 이 접근 경로를 링크라 한다.
링크의 종류엔 hard link와 soft(symbolic link)가 있다.
hard link: 새로운 이름과 파일 실체를 연결한다. 주로 시스템이 생성하여 관리한다.
디렉터리에 대한 링크 생성 불가
다른 파일 시스템으로의 링크 생성 불가
target이 필수로 존재
파일 삭제 시 참조 계수가 0아 될 때까지는 이름만 삭제되고 파일은 보존됨
soft(symbolic link): 새로운 파일을 만들어 경로 정보를 저장한다. 사용자가 생성하고 관리하며, 단축 경로 또는 여러 폴더에서 공유하는 느낌.
디렉터리에 대한 링크 생성 가능
다른 파일 시스템으로의 링크 생성 가능
target이 존재하지 않아도 생성 가능 (경로 정보만 있어도 만들어짐)
링크 삭제 시 파일 삭제됨, 파일 삭제 시 링크 무효화
하드 링크와 심볼릭 링크
명령어의 link_name이란 새 이름으로 대상 파일 target에 대한 링크를 생성하는 것이다. link_name이 생략되면 target과 같은 이름을 사용한다. 단 절대 경로가 같으면 안 된다.
link_name이 디렉터리고 target이 여러 개일 때 각 target에 대한 링크를 link_name 디렉터리 내에 생성하게 된다.
옵션은 아래와 같다.
-s
심볼릭 링크를 만든다. (기본은 하드 링크)
-i
link_name과 같은 이름의 파일이 있으면 덮어쓰기 여부를 묻는다.
ln /etc
# 하드 링크는 디렉터리에 링크를 만들 수 없지만
ln -s /etc
# 소프트 링크는 디렉터리 연결이 가능하다
ln babo bb
# babo라는 허상의 파일(실체가 없음)에 하드 링크를 만들 수 없지만
ln -s babo bb
# 소프트 링크는 가능하다
ln -s k1 sfile
# k1 파일을 소프트파일로 생성
ln k1 hfile
# k1 파일을 하드파일로 지정
rm k1
cat hfile # hfile은 파일 실체에 연결되어 있어 내용은 없지만 파일이 살이있음
cat sfile # sfile은 경로 정보가 저장되어 있는데 경로 정보가 사라져 볼 수 없음