2013년 9월 11일 수요일

Perl 제대로배우기 - 13장(File and Directory handle)

13. File and Directory handle

파일 제거
unlink 함수를 사용 한다.
** 하드링크를 별도로 만들지 않았다면
unlink 함수의 리턴형은 삭제된 파일 수
여러 파일 삭제
예)
unlink (“cow”,”boy”); #두 파일 삭제
unlink <*.o>; #쉘에서 rm *.o와 동일

foreach $file (<*.o>){
 unlink($file) || warn “having trouble deleting $file: $!”;
}
foreach (<*.o>){
 unlink || warn “having trouble deleting $_: $!”;
}

파일 이름 변경
rename 함수를 사용 , 리턴값은 성공 - true(not zero), 실패 - false (0)
rename (“huni”,”yuni”) || die “Can’t rename huni to yuni : $!”;
rename (“yuni”,”dana/yuni”) || die “Can’t rename yuni to dana/yuni : $!”;
mv와 틀리게 반드시 dana라는 디렉토리가 존재해야 한다.
파일에 대한 다른 이름 생성: 링킹
링킹이란 : 한 파일에 대한 다른 이름을 만드는 연산
링킹의 두가지 유형 : 하드링크 와 심볼릭(소프트)링크
하드링크와 소프트링크에 대해
OS(POSIX) 특정 시간(임의의)에 하드 링크에 대한 계수(count)를 유지 한다. 처음 생성되면 하나의 링크를 생긴다.
** 하드링크는 디렉토리에는 제한 됩니다. (생성불가)
심볼릭링크 : 경로명을 데이터로 담고 있는 특별한 종류의 파일

Perl로 하드링크와 소프트링크 생성하기
하드링크 생성 명령 : ln file link_name
심볼릭링크 생성 명려어 : ln -s file link_name
link ("huni","huni_hLink") || die "can't link huni to huni_hLink:$!";
symlink ("huni","huni_sLink") || die "can't symlink huni to huni_sLink:$!";

정보 읽기 (심볼릭링크만 읽을수 있다.)
if(defined($x = readlink(“huni_sLink”))){
 print “huni_sLink points(symlink) at ‘$x’\n”;
}

디렉토리 생성과 제거
mkdir 함수 : 디렉토리 생성
예) mkdir(“huni_dir”,0777) || die “can’t mkdir huni_dir:$!”;
rmdir 함수 : 디렉토리 삭제
예) rmdir(“huni_dir) || die “can’t rmdir huni_dir:$!”;
** 지울 디렉토리에 파일 존재하면 디렉토리 삭제 불가
허가권 변경
chmod 함수 : 권한 변경
foreach $file(“fred”,”barney”){
 unless (chmod (0666,$file)){
   warn “couldn’t chmod $file:$!”;
 }
}
소유권 변경
chown 함수 : 소유권 변경
chown(1234,25,”huni”,”yuni”); # 1234 - UID, 35 - GID , ”huni”,”yuni” :: 파일명
시간표시 변경
utime 함수 : 시간표시 변경
time 함수 : 현재 시간 (단위 초단위)
** 시간은 1970/1/1 부터 경과한 초단위
$atime = $mtime = time() - 20 * 60; 현재 부터 20분전에 시간으로 변경해요
utime ($atime ,$mtime ,”huni”);
$atime : access time (1)
$mtime : modify time (2)
** 마지막 inode 수정 시간 : 설정 방법이 없다.

댓글 없음: