2019年8月30日金曜日

開発環境

初めてのPerl 第7版 (Randal L. Schwartz(著)brian d foy(著)Tom Phoenix(著)近藤 嘉雪(翻訳)嶋田 健志(翻訳)オライリージャパン)の13章(ディレクトリ操作)、13.4(練習問題)6の解答を求めてみる。

コード

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use v5.18;
use File::Basename;
use File::Spec;

say '6.';

my ($old, $new) = @ARGV;

if (-d $new) {
    $old = basename $old;
    $new = File::Spec->catfile($new, $old) if -d $new;
}

link $old, $new or warn "can't link $old to $new: $!";

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)

$ touch a.txt
$ tree
.
├── a.txt
├── sample6.pl
└── tmp

1 directory, 2 files
$ ./sample6.pl a.txt b.txt
6.
$ ls -l *.txt
-rw-r--r--  2 {username}  staff  0  8 30 15:02 a.txt
-rw-r--r--  2 {username}  staff  0  8 30 15:02 b.txt
$ ./sample6.pl a.txt c.txt
6.
$ ls -l {a,b,c}.txt
-rw-r--r--  3 {username}  staff  0  8 30 15:02 a.txt
-rw-r--r--  3 {username}  staff  0  8 30 15:02 b.txt
-rw-r--r--  3 {username}  staff  0  8 30 15:02 c.txt
$ ./sample6.pl a.txt tmp/
6.
$ ls -l *.txt
-rw-r--r--  4 {username}  staff  0  8 30 15:02 a.txt
-rw-r--r--  4 {username}  staff  0  8 30 15:02 b.txt
-rw-r--r--  4 {username}  staff  0  8 30 15:02 c.txt
$ ls -l tmp/*.txt
-rw-r--r--  4 {username}  staff  0  8 30 15:02 tmp/a.txt
$ tree
.
├── a.txt
├── b.txt
├── c.txt
├── sample6.pl
└── tmp
    └── a.txt

1 directory, 5 files
$ mkdir tmp1
$ ./sample6.pl tmp/a.txt tmp1
6.
$ tree
.
├── a.txt
├── b.txt
├── c.txt
├── sample6.pl
├── tmp
│   └── a.txt
└── tmp1
    └── a.txt

2 directories, 6 files
$ ls -l tmp1/*.txt
-rw-r--r--  5 {username}  staff  0  8 30 15:02 tmp1/a.txt
$ ls -l *.txt
-rw-r--r--  5 {username}  staff  0  8 30 15:02 a.txt
-rw-r--r--  5 {username}  staff  0  8 30 15:02 b.txt
-rw-r--r--  5 {username}  staff  0  8 30 15:02 c.txt
$ 

0 コメント:

コメントを投稿