Files
perl-examples/Writerside/topics/File-system.md
2024-06-21 14:57:07 +09:00

1.8 KiB

파일과 디렉토리

파일 확인

$filename = '/home/elex/test.txt';
if (-e $filename){
    ...
}
파일 테스트 연산자 내용
-e 파일이 존재하는지 여부
-r, -R 파일을 읽을 수 있는지 여부
-w, -W 파일에 쓸 수 있는지 여부
-x, -X 파일을 실행할 수 있느지 여부
-o, -O 파일에 대한 소유권이 있느지 여부
-z 빈 파일인지 여부
-s 파일의 크기를 반환
-f 일반 파일인지 여부
-d 디렉토리인지 여부
-l 심볼릭 링크인지 여부
-p 파이프인지 여부
-S 소켓인지 여부
-T 아스키 텍스트 파일인지 여부
-B 이진 파일인지 여부
my $filename = "file.txt";

if (-e -f -r $filename){ # 여러 개를 동시에 물어볼 수 있습니다.
    print "OK\n";
} else {
    print "Not OK.\n";
}

이름 변경

rename ('/home/elex/file.txt', '/home/elex/file2.txt');

파일 삭제

unlink ('/home/elex/file.txt');

파일 목록 조회

my @files = glob('/tmp/*.pl');

디렉토리 생성

mkdir ('/tmp/test') or die "$!";

make_path

디렉토리 구조를 한 번에 생성하려면 File::Path 모듈을 사용해야 합니다.

#!/usr/bin/perl
use strict;
use File::Path qw(make_path remove_tree);

make_path('hello/world', 'hello2');
make_path('hello3', {mode => 0711, user => 'elex', group => 'users'});
remove_tree('world');

디렉토리 제거

rmdir ('/tmp/test') or die "$!";

디렉토리 이동

chdir ('/tmp/test') or die "$!";

링크

link($old_file, $new_file);
symlink($old_file, $new_file);

그리고,

  • chmod

  • chown