2025-02-10T05:29:29
This commit is contained in:
100
docs/15_file_system.md
Normal file
100
docs/15_file_system.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# 파일과 디렉토리
|
||||
|
||||
## 파일 확인
|
||||
|
||||
```perl
|
||||
$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 | 이진 파일인지 여부 |
|
||||
|
||||
```perl
|
||||
my $filename = "file.txt";
|
||||
|
||||
if (-e -f -r $filename){ # 여러 개를 동시에 물어볼 수 있습니다.
|
||||
print "OK\n";
|
||||
} else {
|
||||
print "Not OK.\n";
|
||||
}
|
||||
```
|
||||
|
||||
## 이름 변경
|
||||
|
||||
```perl
|
||||
rename ('/home/elex/file.txt', '/home/elex/file2.txt');
|
||||
```
|
||||
|
||||
## 파일 삭제
|
||||
|
||||
```perl
|
||||
unlink ('/home/elex/file.txt');
|
||||
```
|
||||
|
||||
## 파일 목록 조회
|
||||
|
||||
```perl
|
||||
my @files = glob('/tmp/*.pl');
|
||||
```
|
||||
|
||||
## 디렉토리 생성
|
||||
|
||||
```perl
|
||||
mkdir ('/tmp/test') or die "$!";
|
||||
```
|
||||
|
||||
### make_path
|
||||
|
||||
디렉토리 구조를 한 번에 생성하려면 **File::Path** 모듈을 사용해야 합니다.
|
||||
|
||||
```perl
|
||||
#!/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');
|
||||
```
|
||||
|
||||
## 디렉토리 제거
|
||||
|
||||
```perl
|
||||
rmdir ('/tmp/test') or die "$!";
|
||||
```
|
||||
|
||||
## 디렉토리 이동
|
||||
|
||||
```perl
|
||||
chdir ('/tmp/test') or die "$!";
|
||||
```
|
||||
|
||||
## 링크
|
||||
|
||||
```perl
|
||||
link($old_file, $new_file);
|
||||
symlink($old_file, $new_file);
|
||||
```
|
||||
|
||||
## 그리고,
|
||||
|
||||
- chmod
|
||||
|
||||
- chown
|
||||
Reference in New Issue
Block a user