함수 | 의미 |
---|---|
umask | 파일 생성 마스크를 설정한다 |
access | 파일에 대한 사용자의 접급 권한을 확인한다 |
chmod/fchmod | 파일에 대한 접근 권한을 변경한다 |
chown/fchown | 파일의 소유주와 그룹을 변경한다 |
link | 파일의 새로운 이름을 생성한다 (hard - link) |
rename | 파일의 이름이나 위치를 변경한다 |
symlink | 파일의 새로운 이름을 생성한다. (soft-link, symbolic link) |
readlink | 심볼형 링크의 파일 이름을 읽어온다 |
stat/fstat | 파일의 상태 정보를 가져온다 |
originalname test.txt가 아이노드 블럭을 통해 데이터블록 data를 의미한다고 할때 Hard-link의 경우 data로 연결되는 바로가기를 생성하는 느낌이다.
Soft-link의 경우 hard-link와 마찬가지로 바로가기를 생성하는 느낌이지만 soft-link의 데이터블록은 data로 연결되는 것이 아니라 originalname: 파일의 이름으로 연결이 되기 때문에 두 link의 차이점은 파일 삭제시 더 확실하게 알 수 있다.
Originalfile test.txt파일을 삭제시 hard-link는 여전히 존재한다. 그러나 soft-link파일은 함께 삭제된다.
파일의 생성시 접근 권한을 제한 하는 명령어로 새로운 파일을 생성할 떄 umask로 등록한 권한은 생성되는 파일에 적용되지 않는다.
지정한 파일에 대해서 특정 접근 권한을 가지고 있는지를 검사한다
access(const char *pathname, int mode)
파일의 접근 권한을 변경한다
chmod(const char *path, mode_t mode)
fchmod(int filedes, mode_t mode)
chmod는 개방하지 않은 파일을 경로명으로 지정한다
fchmod는 개방한 파일을 파일 기술자로 지정한다
키워드를 통해 권한을 지정할 수 있다
여러 권한을 중복하여 설정할 때는 논리 연산자 '|' 를 통해 연결한다
chown(const char *path, uid_t owner, gid_t group)
fchown(int fd, uid_t owner, gid_t group)
chmod는 개방하지 않은 파일을 경로명으로 지정한다
fchmod는 개방한 파일을 파일 기술자로 지정한다
파일의 소유주를 변경하는 작업은 시스템 관리자만 수행할 수 있다
link(const char oldpath, const char newpath) -hardlink
symlink(const char oldpath, const char newpath) -softlink
readlink(const char path, char buf, size_t bufsize)
소프트 링크 파일의 실제 내용을 읽는다
소프트 링크는 원본 파일의 경로 이름을 저장하고 있고, readlink는 이 경로 이름을 읽어온다.
rename(const char oldpath, const char newpath)
oldpath와 newpath가 동일하게 지정될 경우 성공으로 간주한다.
newpath로 지정한 파일이 이미 존재할 경우 이를 삭제한 후에 이름을 변경한다.
newpath로 지정한 파일이 이미 존재하며 만약 이 파일이 디렉터리라면 디렉터리가 비어있으면 호출이 성공하고 비어있지 않으면 실패한다.
stat(const char filename, struct stat buf)
fstat(int filedes, struct stat *buf)
지정한 파일의 아이노드 블록에 저장된 정보를 읽어온다.
리눅스
파일 데렉토리 생성: mkdir dir_path
현재 디렉토리 변경: cd dir_path
파일 디렉토리 옮기기: mv file_path new_file_path
파일 여러개 한꺼번에 옮기기: mv ex04* new_file_path (: ex04로 시작하는 모든 파일을 옮긴다)
파일 복사하기: cp original_file_path copy_path