|
1 |
require shell/error
|
|
2 |
require shell/command-processor
|
|
3 |
require shell/process-controller
|
|
4 |
|
| 1 |
5 |
Ruby 上で sh/csh のようにコマンドの実行及びフィルタリングを手軽に行うためのライブラリです。
|
| 2 |
6 |
#@# Author: Keiju ISHITSUKA
|
| 3 |
7 |
|
| ... | ... | |
| 54 |
58 |
|
| 55 |
59 |
|
| 56 |
60 |
|
| 57 |
|
= class Shell::Filter < Object
|
| 58 |
|
|
| 59 |
|
include Enumerable
|
| 60 |
|
|
| 61 |
|
コマンドの実行結果はすべてShell::Filterとしてかえります.
|
| 62 |
|
|
| 63 |
|
== Class Methods
|
| 64 |
|
|
| 65 |
|
--- new -> Shell::Filter
|
| 66 |
|
|
| 67 |
|
執筆者募集。
|
| 68 |
|
Shell::Filter クラス のインスタンスを返します。
|
| 69 |
|
通常このnewを直接使う機会はすくないでしょう。
|
| 70 |
|
|
| 71 |
|
== Instance Methods
|
| 72 |
|
|
| 73 |
|
--- each(rs = nil) -> ()
|
| 74 |
|
|
| 75 |
|
フィルタの一行ずつをblockに渡します。
|
| 76 |
|
|
| 77 |
|
@param rs レコードセパレーターを表す文字列を指定します。
|
| 78 |
|
nil ならば、[[m:Shell.record_separator]]の値が使用されます。
|
| 79 |
|
|
| 80 |
|
使用例
|
| 81 |
|
sh = Shell.new
|
| 82 |
|
sh.cat("/etc/passwd").each { |line|
|
| 83 |
|
puts line
|
| 84 |
|
}
|
| 85 |
|
|
| 86 |
|
--- <(src) -> self
|
| 87 |
|
|
| 88 |
|
srcをフィルタの入力とする. srcが, 文字列ならばファイルを, IOオブジェクトであれ
|
| 89 |
|
ばそれをそのまま入力とする.
|
| 90 |
|
|
| 91 |
|
@param src フィルタの入力を, 文字列もしくは,IO オブジェクトで指定します.
|
| 92 |
|
|
| 93 |
|
使用例
|
| 94 |
|
Shell.def_system_command("head")
|
| 95 |
|
sh = Shell.new
|
| 96 |
|
sh.transact {
|
| 97 |
|
(sh.head("-n 30") < "/etc/passwd") > "ugo.txt"
|
| 98 |
|
}
|
| 99 |
|
|
| 100 |
|
--- >(to) -> self
|
| 101 |
|
|
| 102 |
|
toをフィルタの出力とする. toが, 文字列ならばファイルに, IOオブジェクトであれ
|
| 103 |
|
ばそれをそのまま出力とする.
|
| 104 |
|
|
| 105 |
|
@param to 出力先を指定します.文字列ならばファイルに,IOオブジェクトならばそれに出力します.
|
| 106 |
|
|
| 107 |
|
使用例
|
| 108 |
|
Shell.def_system_command("tail")
|
| 109 |
|
sh = Shell.new
|
| 110 |
|
sh.transact {
|
| 111 |
|
(sh.tail("-n 3") < "/etc/passwd") > File.open("tail.out", "w")
|
| 112 |
|
#(sh.tail("-n 3") < "/etc/passwd") > "tail.out" # と同じ.
|
| 113 |
|
}
|
| 114 |
|
|
| 115 |
|
--- >>(to) -> self
|
| 116 |
|
|
| 117 |
|
toをフィルタに追加する. toが, 文字列ならばファイルに, IOオブジェクトであれば
|
| 118 |
|
それをそのまま出力とする.
|
| 119 |
|
|
| 120 |
|
@param to 出力先を指定します。文字列ならばファイルに、IOオブジェクトならばそれに出力します。
|
| 121 |
|
|
| 122 |
|
使用例
|
| 123 |
|
Shell.def_system_command("tail")
|
| 124 |
|
sh = Shell.new
|
| 125 |
|
sh.transact {
|
| 126 |
|
(sh.tail("-n 3") < "/etc/passwd") >> "tail.out"
|
| 127 |
|
#(sh.tail("-n 3") < "/etc/passwd") >> File.open("tail.out", "w") # でも同じ.
|
| 128 |
|
}
|
| 129 |
|
|
| 130 |
|
--- |(filter) -> object
|
| 131 |
|
|
| 132 |
|
パイプ結合を filter に対して行います。
|
| 133 |
|
|
| 134 |
|
@param filter Shell::Filter オブジェクトを指定します.
|
| 135 |
|
|
| 136 |
|
@return filter を返します.
|
| 137 |
|
|
| 138 |
|
使用例
|
| 139 |
|
Shell.def_system_command("tail")
|
| 140 |
|
Shell.def_system_command("head")
|
| 141 |
|
Shell.def_system_command("wc")
|
| 142 |
|
sh = Shell.new
|
| 143 |
|
sh.transact {
|
| 144 |
|
i = 1
|
| 145 |
|
while i <= (cat("/etc/passwd") | wc("-l")).to_s.chomp.to_i
|
| 146 |
|
puts (cat("/etc/passwd") | head("-n #{i}") | tail("-n 1")).to_s
|
| 147 |
|
i += 1
|
| 148 |
|
end
|
| 149 |
|
}
|
| 150 |
|
|
| 151 |
|
--- +(filter)
|
| 152 |
|
執筆者募集
|
| 153 |
|
|
| 154 |
|
filter1 + filter2 は filter1の出力の後, filter2の出力を行う.
|
| 155 |
|
|
| 156 |
|
--- to_a -> Array
|
| 157 |
|
--- to_s -> String
|
| 158 |
|
|
| 159 |
|
実行結果を文字列、それぞれ文字列の配列で返します。
|
| 160 |
|
|
| 161 |
|
使用例
|
| 162 |
|
Shell.def_system_command("wc")
|
| 163 |
|
sh = Shell.new
|
| 164 |
|
puts sh.cat("/etc/passwd").to_a
|
| 165 |
|
|
| 166 |
|
sh.transact {
|
| 167 |
|
puts (cat("/etc/passwd") | wc("-l")).to_s
|
| 168 |
|
}
|
| 169 |
|
|
| 170 |
|
--- input
|
| 171 |
|
--- input=
|
| 172 |
|
執筆者募集
|
| 173 |
|
|
| 174 |
|
フィルターを設定します。
|
| 175 |
|
|
| 176 |
61 |
= class Shell < Object
|
|
62 |
extend Exception2MessageMapper
|
|
63 |
include Shell::Error
|
| 177 |
64 |
|
| 178 |
|
Shellオブジェクトはカレントディレクトリを持ち,
|
|
65 |
Shell オブジェクトはカレントディレクトリを持ち,
|
| 179 |
66 |
コマンド実行はそこからの相対パスになります.
|
| 180 |
67 |
|
| 181 |
68 |
== Class Methods
|
| 182 |
69 |
|
| 183 |
|
#@#=== コマンド定義
|
| 184 |
|
#@#OS上のコマンドを実行するにはまず, Shellのメソッドとして定義します.
|
| 185 |
|
#@#注) コマンドを定義しなくとも直接実行できるShell#systemコマンドもあります.
|
| 186 |
|
|
| 187 |
70 |
--- def_system_command(command, path = command) -> nil
|
| 188 |
71 |
|
| 189 |
|
Shellのメソッドとしてcommandを登録します.
|
|
72 |
Shell のメソッドとして command を登録します.
|
| 190 |
73 |
|
| 191 |
74 |
OS上のコマンドを実行するにはまず, Shellのメソッドとして定義します.
|
| 192 |
|
注) コマンドを定義しなくとも直接実行できるShell#systemコマンドもあります.
|
|
75 |
注) コマンドを定義しなくとも直接実行できる [[m:Shell#system]] コマンドもあります.
|
| 193 |
76 |
|
| 194 |
77 |
@param command Shell のメソッドとして定義するコマンドを文字列で指定します。
|
| 195 |
78 |
|
| ... | ... | |
| 355 |
238 |
|
| 356 |
239 |
--- debug -> bool | Integer
|
| 357 |
240 |
--- debug? -> bool | Integer
|
|
241 |
#@todo
|
|
242 |
|
|
243 |
デバッグ用フラグを参照します。
|
|
244 |
|
| 358 |
245 |
--- debug=(val)
|
| 359 |
246 |
|
| 360 |
|
?ǥХå??ѤΥե饰?????ꤪ???ӡ????Ȥ??Ԥ??ޤ???
|
|
247 |
?ǥХå??ѤΥե饰?????ꤷ?ޤ???
|
| 361 |
248 |
|
| 362 |
249 |
@param val bool 値や整数値を指定します。詳細は下記を参照してください。
|
| 363 |
250 |
|
| ... | ... | |
| 394 |
281 |
|
| 395 |
282 |
--- verbose -> bool
|
| 396 |
283 |
--- verbose? -> bool
|
|
284 |
#@todo
|
|
285 |
|
| 397 |
286 |
--- verbose=(flag)
|
| 398 |
287 |
|
| 399 |
288 |
true ならば冗長な出力の設定を行います。
|
| 400 |
289 |
|
| 401 |
290 |
@param flag true ならば冗長な出力の設定を行います。
|
| 402 |
291 |
|
|
292 |
|
|
293 |
--- cascade -> bool
|
|
294 |
#@todo
|
|
295 |
|
|
296 |
--- cascade=(flag)
|
|
297 |
#@todo
|
|
298 |
|
|
299 |
--- notify(*opts){|message| ... } -> String
|
|
300 |
#@todo
|
|
301 |
|
|
302 |
#@since 1.9.1
|
|
303 |
|
|
304 |
--- debug_output_exclusive_unlock{ ... } -> Mutex | nil
|
|
305 |
#@todo
|
|
306 |
|
|
307 |
@see [[m:Mutex#exclusive_unlock]]
|
|
308 |
|
|
309 |
--- debug_output_lock -> Mutex
|
|
310 |
#@todo
|
|
311 |
|
|
312 |
@see [[m:Mutex#lock]]
|
|
313 |
|
|
314 |
--- debug_output_locked? -> bool
|
|
315 |
#@todo
|
|
316 |
|
|
317 |
@see [[m:Mutex#locked?]]
|
|
318 |
|
|
319 |
--- debug_output_synchronize
|
|
320 |
#@todo
|
|
321 |
|
|
322 |
@see [[m:Mutex#synchronize]]
|
|
323 |
|
|
324 |
--- debug_output_try_lock -> bool
|
|
325 |
#@todo
|
|
326 |
|
|
327 |
@see [[m:Mutex#try_lock]]
|
|
328 |
|
|
329 |
--- debug_output_unlock -> Mutex | nil
|
|
330 |
#@todo
|
|
331 |
|
|
332 |
@see [[m:Mutex#unlock]]
|
|
333 |
|
|
334 |
#@end
|
|
335 |
|
| 403 |
336 |
== Instance Methods
|
| 404 |
337 |
#@#=== プロセス管理
|
| 405 |
338 |
|
| ... | ... | |
| 432 |
365 |
p sh.system_path #=> ["./"]
|
| 433 |
366 |
|
| 434 |
367 |
--- umask -> object
|
|
368 |
#@todo
|
| 435 |
369 |
|
| 436 |
370 |
umaskを返します。
|
| 437 |
371 |
|
|
372 |
--- umask=(umask)
|
|
373 |
#@todo
|
|
374 |
|
| 438 |
375 |
--- jobs -> Array
|
| 439 |
376 |
|
| 440 |
|
執筆者募集. スケジューリングされているjobの一覧を返す.
|
|
377 |
スケジューリングされているjobの一覧を返します。
|
| 441 |
378 |
|
| 442 |
|
--- kill(sig, job)
|
|
379 |
--- kill(signal, job) -> Integer
|
|
380 |
#@todo
|
| 443 |
381 |
|
| 444 |
|
執筆者募集. jobにシグナルsigを送る.
|
|
382 |
ジョブにシグナルを送ります。
|
|
383 |
|
|
384 |
@param signal
|
|
385 |
|
|
386 |
@param job
|
| 445 |
387 |
|
| 446 |
388 |
#@#=== カレントディレクトリ操作
|
| 447 |
389 |
|
| ... | ... | |
| 508 |
450 |
sh.popd
|
| 509 |
451 |
p sh.cwd #=> "/tmp"
|
| 510 |
452 |
|
| 511 |
|
#@#=== ファイル/ディレクトリ操作
|
| 512 |
|
--- foreach(path = nil, &block) -> ()
|
| 513 |
|
|
| 514 |
|
pathがファイルなら, File#foreach
|
| 515 |
|
pathがディレクトリなら, Dir#foreach
|
| 516 |
|
の動作をします。
|
| 517 |
|
|
| 518 |
|
@param path ファイルもしくはディレクトリのパスを文字列で指定します。
|
| 519 |
|
|
| 520 |
|
使用例
|
| 521 |
|
require 'shell'
|
| 522 |
|
Shell.verbose = false
|
| 523 |
|
sh = Shell.new
|
| 524 |
|
sh.foreach("/tmp"){|f|
|
| 525 |
|
puts f
|
| 526 |
|
}
|
| 527 |
|
|
| 528 |
|
--- open(path, mode) -> object
|
| 529 |
|
|
| 530 |
|
pathがファイルなら, File#open
|
| 531 |
|
pathがディレクトリなら, Dir#open
|
| 532 |
|
の動作をします。
|
| 533 |
|
|
| 534 |
|
@param path くわしくは、[[m:File.open]], [[m:Dir.open]]を参照してください。
|
| 535 |
|
|
| 536 |
|
@param mode くわしくは、[[m:File.open]], [[m:Dir.open]]を参照してください。
|
| 537 |
|
|
| 538 |
|
--- unlink(path) -> self
|
| 539 |
|
|
| 540 |
|
pathがファイルなら, File#unlink
|
| 541 |
|
pathがディレクトリなら, Dir#unlink
|
| 542 |
|
の動作をします。
|
| 543 |
|
|
| 544 |
|
@param path くわしくは、[[m:File.unlink]], [[m:Dir.unlink]]を参照してください。
|
| 545 |
|
|
| 546 |
|
--- test(command, file1, file2 = nil) -> bool
|
| 547 |
|
--- [](command, file1, file2 = nil) -> bool
|
| 548 |
|
|
| 549 |
|
執筆者募集。 ファイルテスト関数testと同じです。
|
| 550 |
|
|
| 551 |
|
@param command ファイルテスト関数testと同じです。
|
| 552 |
|
|
| 553 |
|
@param file1 文字列でファイルへのパスを指定します。
|
| 554 |
|
ファイルテスト関数testに渡される第一引数となります。
|
| 555 |
|
|
| 556 |
|
@param file2 文字列でファイルへのパスを指定します。
|
| 557 |
|
ファイルテスト関数testに渡される第二引数となります。省略可。
|
| 558 |
|
|
| 559 |
|
|
| 560 |
|
例:
|
| 561 |
|
|
| 562 |
|
require 'shell'
|
| 563 |
|
Shell.verbose = false
|
| 564 |
|
sh = Shell.new
|
| 565 |
|
begin
|
| 566 |
|
sh.mkdir("foo")
|
| 567 |
|
rescue
|
| 568 |
|
end
|
| 569 |
|
p sh[?e, "foo"] #=> true
|
| 570 |
|
p sh[:e, "foo"] #=> true
|
| 571 |
|
p sh["e", "foo"] #=> true
|
| 572 |
|
p sh[:exists?, "foo"] #=> true
|
| 573 |
|
p sh["exists?", "foo"] #=> true
|
| 574 |
|
|
| 575 |
|
--- mkdir(*path) -> Array
|
| 576 |
|
|
| 577 |
|
Dir.mkdirと同じです。 (複数可)
|
| 578 |
|
|
| 579 |
|
@param path 作成するディレクトリ名を文字列で指定します。
|
| 580 |
|
|
| 581 |
|
@return 作成するディレクトリの一覧の配列を返します。
|
| 582 |
|
|
| 583 |
|
使用例
|
| 584 |
|
require 'shell'
|
| 585 |
|
Shell.verbose = false
|
| 586 |
|
sh = Shell.new
|
| 587 |
|
begin
|
| 588 |
|
p sh.mkdir("foo") #=> ["foo"]
|
| 589 |
|
rescue => err
|
| 590 |
|
puts err
|
| 591 |
|
end
|
| 592 |
|
|
| 593 |
|
|
| 594 |
|
--- rmdir(*path) -> ()
|
| 595 |
|
|
| 596 |
|
Dir.rmdirと同じです。 (複数可)
|
| 597 |
|
|
| 598 |
|
@param path 削除するディレクトリ名を文字列で指定します。
|
| 599 |
|
|
| 600 |
|
--- system(command, *opts) -> Shell::Filter
|
| 601 |
|
|
| 602 |
|
commandを実行する.
|
| 603 |
|
|
| 604 |
|
@param command 実行するコマンドのパスを文字列で指定します。
|
| 605 |
|
|
| 606 |
|
@param opts command のオプションを文字列で指定します。複数可。
|
| 607 |
|
|
| 608 |
|
使用例:
|
| 609 |
|
|
| 610 |
|
require 'shell'
|
| 611 |
|
Shell.verbose = false
|
| 612 |
|
sh = Shell.new
|
| 613 |
|
|
| 614 |
|
print sh.system("ls", "-l")
|
| 615 |
|
Shell.def_system_command("head")
|
| 616 |
|
sh.system("ls", "-l") | sh.head("-n 3") > STDOUT
|
| 617 |
|
|
| 618 |
|
--- rehash -> Hash
|
| 619 |
|
執筆者募集。
|
| 620 |
|
リハッシュする。通常使う事はありません。
|
| 621 |
|
|
| 622 |
|
--- transact { ... } -> object
|
| 623 |
|
|
| 624 |
|
ブロック中で shell を self として実行します。
|
| 625 |
|
|
| 626 |
|
例:
|
| 627 |
|
|
| 628 |
|
require 'shell'
|
| 629 |
|
Shell.def_system_command("head")
|
| 630 |
|
sh = Shell.new
|
| 631 |
|
sh.transact{
|
| 632 |
|
system("ls", "-l") | head > STDOUT
|
| 633 |
|
# transact の中では、
|
| 634 |
|
# sh.system("ls", "-l") | sh.head > STDOUT と同じとなる。
|
| 635 |
|
}
|
| 636 |
|
|
| 637 |
|
--- out(dev = STDOUT, &block) -> ()
|
| 638 |
|
|
| 639 |
|
[[m:Shell#transact]] を呼び出しその結果を dev に出力します。
|
| 640 |
|
|
| 641 |
|
@param dev 出力先をIO オブジェクトなどで指定します。
|
| 642 |
|
|
| 643 |
|
@param block transact 内部で実行するシェルを指定します。
|
| 644 |
|
|
| 645 |
|
|
| 646 |
|
使用例:
|
| 647 |
|
require 'shell'
|
| 648 |
|
Shell.def_system_command("head")
|
| 649 |
|
sh = Shell.new
|
| 650 |
|
File.open("out.txt", "w"){ |fp|
|
| 651 |
|
sh.out(fp) {
|
| 652 |
|
system("ls", "-l") | head("-n 3")
|
| 653 |
|
}
|
| 654 |
|
}
|
| 655 |
|
|
| 656 |
|
|
| 657 |
|
#@#=== 内部コマンド
|
| 658 |
|
|
| 659 |
|
--- echo(*strings) -> Shell::Filter
|
| 660 |
|
実行すると, それらを内容とする Filter オブジェクトを返します.
|
| 661 |
|
|
| 662 |
|
@param strings シェルコマンド echo に与える引数を文字列で指定します。
|
| 663 |
|
|
| 664 |
|
動作例
|
| 665 |
|
require 'shell'
|
| 666 |
|
Shell.def_system_command("head")
|
| 667 |
|
sh = Shell.new
|
| 668 |
|
sh.transact {
|
| 669 |
|
glob("*.txt").to_a.each { |file|
|
| 670 |
|
file.chomp!
|
| 671 |
|
cat(file).each { |l|
|
| 672 |
|
echo(l) | tee(file + ".tee") >> "all.tee"
|
| 673 |
|
}
|
| 674 |
|
}
|
| 675 |
|
}
|
| 676 |
|
|
| 677 |
|
|
| 678 |
|
--- cat(*files) -> Shell::Filter
|
| 679 |
|
実行すると, それらを内容とする Filter オブジェクトを返します.
|
| 680 |
|
|
| 681 |
|
@param files シェルコマンド cat に与えるファイル名を文字列で指定します。
|
| 682 |
|
|
| 683 |
|
動作例
|
| 684 |
|
require 'shell'
|
| 685 |
|
Shell.def_system_command("head")
|
| 686 |
|
sh = Shell.new
|
| 687 |
|
sh.transact {
|
| 688 |
|
glob("*.txt").to_a.each { |file|
|
| 689 |
|
file.chomp!
|
| 690 |
|
cat(file).each { |l|
|
| 691 |
|
echo(l) | tee(file + ".tee") >> "all.tee"
|
| 692 |
|
}
|
| 693 |
|
}
|
| 694 |
|
}
|
| 695 |
|
|
| 696 |
|
|
| 697 |
|
--- glob(patten) -> Shell::Filter
|
| 698 |
|
実行すると, それらを内容とする Filter オブジェクトを返します.
|
| 699 |
|
|
| 700 |
|
@param patten シェルコマンド glob に与えるパターンを指定します。
|
| 701 |
|
パターンの書式については、[[m:Dir.[] ]]を参照してください。
|
| 702 |
|
|
| 703 |
|
動作例
|
| 704 |
|
require 'shell'
|
| 705 |
|
Shell.def_system_command("head")
|
| 706 |
|
sh = Shell.new
|
| 707 |
|
sh.transact {
|
| 708 |
|
glob("*.txt").to_a.each { |file|
|
| 709 |
|
file.chomp!
|
| 710 |
|
cat(file).each { |l|
|
| 711 |
|
echo(l) | tee(file + ".tee") >> "all.tee"
|
| 712 |
|
}
|
| 713 |
|
}
|
| 714 |
|
}
|
| 715 |
|
|
| 716 |
|
@see [[m:Dir.[] ]]
|
| 717 |
|
|
| 718 |
|
|
| 719 |
|
--- tee(file) -> Shell::Filter
|
| 720 |
|
|
| 721 |
|
実行すると, それらを内容とする Filter オブジェクトを返します.
|
| 722 |
|
|
| 723 |
|
@param file シェルコマンドtee に与えるファイル名を文字列で指定します。
|
| 724 |
|
|
| 725 |
|
動作例
|
| 726 |
|
require 'shell'
|
| 727 |
|
Shell.def_system_command("head")
|
| 728 |
|
sh = Shell.new
|
| 729 |
|
sh.transact {
|
| 730 |
|
glob("*.txt").to_a.each { |file|
|
| 731 |
|
file.chomp!
|
| 732 |
|
cat(file).each { |l|
|
| 733 |
|
echo(l) | tee(file + ".tee") >> "all.tee"
|
| 734 |
|
}
|
| 735 |
|
}
|
| 736 |
|
}
|
| 737 |
|
|
| 738 |
|
#@#=== 組込みコマンド
|
| 739 |
|
|
| 740 |
|
--- atime(filename) -> Time
|
| 741 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 742 |
|
|
| 743 |
|
@param filename ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 744 |
|
|
| 745 |
|
@see [[m:File.atime]]
|
| 746 |
|
|
| 747 |
|
--- basename(filename, suffix = "") -> String
|
| 748 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 749 |
|
|
| 750 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 751 |
|
|
| 752 |
|
@param suffix サフィックスを文字列で与えます。'.*' という文字列を与えた場合、'*' はワイルドカードとして働き
|
| 753 |
|
'.' を含まない任意の文字列にマッチします。
|
| 754 |
|
|
| 755 |
|
@see [[m:File.basename]]
|
| 756 |
|
|
| 757 |
|
|
| 758 |
|
--- chmod(mode, *filename) -> Integer
|
| 759 |
|
|
| 760 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 761 |
|
|
| 762 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 763 |
|
|
| 764 |
|
@param mode [[man:chmod(2)]] と同様に整数で指定します。
|
| 765 |
|
|
| 766 |
|
@see [[m:File.chmod]]
|
| 767 |
|
|
| 768 |
|
--- chown(owner, group, *filename) -> Integer
|
| 769 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 770 |
|
|
| 771 |
|
@param owner [[man:chown(2)]] と同様に数値で指定します。nil または -1 を指定することで、オーナーを現在の>ままにすることができます。
|
| 772 |
|
|
| 773 |
|
@param group [[man:chown(2)]] と同様に数値で指定します。nil または -1 を指定することで、グループを現在の>ままにすることができます。
|
| 774 |
|
|
| 775 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 776 |
|
|
| 777 |
|
@see [[m:File.chown]]
|
| 778 |
|
|
| 779 |
|
--- ctime(filename) -> Time
|
| 780 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 781 |
|
|
| 782 |
|
@param filename ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 783 |
|
|
| 784 |
|
@see [[m:File.ctime]]
|
| 785 |
|
|
| 786 |
|
--- delete(*filename) -> Integer
|
| 787 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 788 |
|
|
| 789 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 790 |
|
|
| 791 |
|
@see [[m:File.delete]]
|
| 792 |
|
|
| 793 |
|
--- dirname(filename) -> String
|
| 794 |
|
|
| 795 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 796 |
|
|
| 797 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 798 |
|
|
| 799 |
|
@see [[m:File.dirname]]
|
| 800 |
|
|
| 801 |
|
--- ftype(filename) -> String
|
| 802 |
|
|
| 803 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 804 |
|
|
| 805 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 806 |
|
|
| 807 |
|
@see [[m:File.ftype]]
|
| 808 |
|
|
| 809 |
|
--- join(*item) -> String
|
| 810 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 811 |
|
|
| 812 |
|
@param item 連結したいディレクトリ名やファイル名を文字列で与えます。
|
| 813 |
|
|
| 814 |
|
@see [[m:File.join]]
|
| 815 |
|
|
| 816 |
|
--- link(old, new) -> 0
|
| 817 |
|
|
| 818 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 819 |
|
|
| 820 |
|
@param old ファイル名を表す文字列を指定します。
|
| 821 |
|
|
| 822 |
|
@param new ファイル名を表す文字列を指定します。
|
| 823 |
|
|
| 824 |
|
@see [[m:File.link]]
|
| 825 |
|
|
| 826 |
|
|
| 827 |
|
--- lstat(filename) -> File::Stat
|
| 828 |
453 |
|
| 829 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 830 |
|
|
| 831 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 832 |
|
|
| 833 |
|
@see [[m:File.lstat]]
|
| 834 |
|
|
| 835 |
|
--- mtime(filename) -> Time
|
| 836 |
|
|
| 837 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 838 |
|
|
| 839 |
|
@param filename ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 840 |
|
|
| 841 |
|
@see [[m:File.mtime]]
|
| 842 |
|
|
| 843 |
|
--- readlink(path) -> String
|
| 844 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 845 |
|
|
| 846 |
|
@param path シンボリックリンクを表す文字列を指定します。
|
| 847 |
|
|
| 848 |
|
@see [[m:File.readlink]]
|
| 849 |
|
|
| 850 |
|
--- rename(from, to) -> 0
|
| 851 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 852 |
|
|
| 853 |
|
@param from ファイルの名前を文字列で与えます。
|
| 854 |
|
|
| 855 |
|
@param to 新しいファイル名を文字列で与えます。
|
| 856 |
|
|
| 857 |
|
@see [[m:File.rename]]
|
| 858 |
|
|
| 859 |
|
--- split(pathname) -> [String]
|
| 860 |
|
|
| 861 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 862 |
|
|
| 863 |
|
@param pathname パス名を表す文字列を指定します。
|
| 864 |
|
|
| 865 |
|
@see [[m:File.split]]
|
| 866 |
|
|
| 867 |
|
--- stat(filename) -> File::Stat
|
| 868 |
|
|
| 869 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 870 |
|
|
| 871 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 872 |
|
|
| 873 |
|
@see [[m:File.stat]]
|
|
454 |
#@# 組込みコマンド
|
|
455 |
#@include(shell/builtincommands)
|
| 874 |
456 |
|
|
457 |
--- expand_path(path) -> String
|
| 875 |
458 |
|
| 876 |
|
--- symlink(old, new) -> 0
|
| 877 |
459 |
Fileクラスにある同名のクラスメソッドと同じです.
|
| 878 |
460 |
|
| 879 |
|
@param old ファイル名を表す文字列を指定します。
|
| 880 |
|
|
| 881 |
|
@param new シンボリックリンクを表す文字列を指定します。
|
| 882 |
|
|
| 883 |
|
@see [[m:File.symlink]]
|
| 884 |
|
|
| 885 |
|
|
| 886 |
|
--- truncate(path, length) -> 0
|
| 887 |
|
|
| 888 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 889 |
|
|
| 890 |
|
@param path パスを表す文字列を指定します。
|
| 891 |
|
|
| 892 |
|
@param length 変更したいサイズを整数で与えます。
|
| 893 |
|
|
| 894 |
|
@see [[m:File.truncate]]
|
| 895 |
|
|
| 896 |
|
--- utime(atime, mtime, *filename) -> Integer
|
| 897 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
| 898 |
|
|
| 899 |
|
@param filename ファイル名を表す文字列を指定します。
|
| 900 |
|
|
| 901 |
|
@param atime 最終アクセス時刻を [[c:Time]] か、起算時からの経過秒数を数値で指定します。
|
| 902 |
|
|
| 903 |
|
@param utime 更新時刻を [[c:Time]] か、起算時からの経過秒数を数値で指定します。
|
| 904 |
|
|
| 905 |
|
@see [[m:File.utime]]
|
| 906 |
|
|
| 907 |
|
--- blockdev?(file) -> bool
|
| 908 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 909 |
|
|
| 910 |
|
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 911 |
|
|
| 912 |
|
@see [[m:FileTest.#blockdev?]]
|
| 913 |
|
|
| 914 |
|
--- chardev?(file) -> bool
|
| 915 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 916 |
|
|
| 917 |
|
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 918 |
|
|
| 919 |
|
@see [[m:FileTest.#chardev?]]
|
| 920 |
|
|
| 921 |
|
--- directory?(file) -> bool
|
| 922 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 923 |
|
|
| 924 |
|
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 925 |
|
|
| 926 |
|
@see [[m:FileTest.#directory?]]
|
| 927 |
|
|
| 928 |
|
--- executable?(file) -> bool
|
| 929 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 930 |
|
|
| 931 |
|
@param file ファイル名を表す文字列を指定します。
|
| 932 |
|
|
| 933 |
|
@see [[m:FileTest.#executable?]]
|
| 934 |
|
|
| 935 |
|
--- executable_real?(file) -> bool
|
| 936 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 937 |
|
|
| 938 |
|
@param file ファイル名を表す文字列を指定します。
|
| 939 |
|
|
| 940 |
|
@see [[m:FileTest.#executable_real?]]
|
| 941 |
|
|
| 942 |
|
--- exist?(file) -> bool
|
| 943 |
|
--- exists?(file) -> bool
|
| 944 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 945 |
|
|
| 946 |
|
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 947 |
|
|
| 948 |
|
@see [[m:FileTest.#exist?]] [[m:FileTest.#exists?]]
|
| 949 |
|
|
| 950 |
|
--- file?(file) -> bool
|
| 951 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 952 |
|
|
| 953 |
|
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 954 |
|
|
| 955 |
|
@see [[m:FileTest.#file?]]
|
| 956 |
|
|
| 957 |
|
--- grpowned?(file) -> bool
|
| 958 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 959 |
|
|
| 960 |
|
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 961 |
|
|
| 962 |
|
@see [[m:FileTest.#grpowned?]]
|
| 963 |
|
|
| 964 |
|
--- owned?(file) -> bool
|
| 965 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 966 |
|
|
| 967 |
|
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 968 |
|
|
| 969 |
|
@see [[m:FileTest.#owned?]]
|
| 970 |
|
|
| 971 |
|
--- pipe?(file) -> bool
|
| 972 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 973 |
|
|
| 974 |
|
@param file ファイル名を表す文字列か IO オブジェクトを指定します。
|
| 975 |
|
|
| 976 |
|
@see [[m:FileTest.#pipe?]]
|
| 977 |
|
|
| 978 |
|
--- readable?(file) -> bool
|
| 979 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 980 |
|
|
| 981 |
|
@param file ファイル名を表す文字列を指定します。
|
| 982 |
|
|
| 983 |
|
@see [[m:FileTest.#readable?]]
|
| 984 |
|
|
| 985 |
|
--- readable_real?(file) -> bool
|
| 986 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 987 |
|
|
| 988 |
|
@param file ファイル名を表す文字列を指定します。
|
| 989 |
|
|
| 990 |
|
@see [[m:FileTest.#readable_real?]]
|
| 991 |
|
|
| 992 |
|
--- setgid?(file) -> bool
|
| 993 |
|
|
| 994 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 995 |
|
|
| 996 |
|
@param file ファイル名を表す文字列を指定します。
|
| 997 |
|
|
| 998 |
|
@see [[m:FileTest.#setgid?]]
|
| 999 |
|
|
| 1000 |
|
--- setuid?(file) -> bool
|
| 1001 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 1002 |
|
|
| 1003 |
|
@param file ファイル名を表す文字列を指定します。
|
| 1004 |
|
|
| 1005 |
|
@see [[m:FileTest.#setuid?]]
|
| 1006 |
|
|
| 1007 |
|
--- size(file) -> Integer
|
| 1008 |
|
--- size?(file) -> Integer | nil
|
| 1009 |
|
|
| 1010 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 1011 |
|
|
| 1012 |
|
@param file ファイル名を表す文字列を指定します。
|
| 1013 |
|
|
| 1014 |
|
@see [[m:FileTest.#size]] [[m:FileTest.#size?]]
|
| 1015 |
|
|
| 1016 |
|
--- socket?(file) -> bool
|
| 1017 |
|
|
| 1018 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 1019 |
|
|
| 1020 |
|
@param file ファイル名を表す文字列を指定します。
|
| 1021 |
|
|
| 1022 |
|
@see [[m:FileTest.#socket?]]
|
| 1023 |
|
|
| 1024 |
|
|
| 1025 |
|
--- sticky?(file) -> bool
|
| 1026 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 1027 |
|
|
| 1028 |
|
@param file ファイル名を表す文字列を指定します。
|
| 1029 |
|
|
| 1030 |
|
@see [[m:FileTest.#sticky?]]
|
| 1031 |
|
|
| 1032 |
|
--- symlink?(file) -> bool
|
| 1033 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 1034 |
|
|
| 1035 |
|
@param file ファイル名を表す文字列を指定します。
|
| 1036 |
|
|
| 1037 |
|
@see [[m:FileTest.#symlink?]]
|
| 1038 |
|
|
| 1039 |
|
--- writable?(file) -> bool
|
| 1040 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 1041 |
|
|
| 1042 |
|
@param file ファイル名を表す文字列を指定します。
|
| 1043 |
|
|
| 1044 |
|
@see [[m:FileTest.#writable?]]
|
| 1045 |
|
|
| 1046 |
|
--- writable_real?(file) -> bool
|
| 1047 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 1048 |
|
|
| 1049 |
|
@param file ファイル名を表す文字列を指定します。
|
| 1050 |
|
|
| 1051 |
|
@see [[m:FileTest.#writable_real?]]
|
| 1052 |
|
|
| 1053 |
|
--- zero?(file) -> bool
|
| 1054 |
|
FileTestクラスにある同名のクラスメソッドと同じです.
|
| 1055 |
|
|
| 1056 |
|
@param file ファイル名を表す文字列を指定します。
|
| 1057 |
|
|
| 1058 |
|
@see [[m:FileTest.#zero?]]
|
| 1059 |
|
|
| 1060 |
|
#@until 1.9.1
|
| 1061 |
|
--- syscopy(from, to) -> bool
|
| 1062 |
|
|
| 1063 |
|
FileToolsクラスにある同名のクラスメソッドと同じです.
|
| 1064 |
|
|
| 1065 |
|
@param from ファイルの名前を文字列で与えます。
|
| 1066 |
|
|
| 1067 |
|
@param to 新しいファイル名を文字列で与えます。
|
| 1068 |
|
|
| 1069 |
|
@see [[m:File.syscopy]]
|
| 1070 |
|
|
| 1071 |
|
--- copy(from, to) -> bool
|
| 1072 |
|
FileToolsクラスにある同名のクラスメソッドと同じです.
|
| 1073 |
|
|
| 1074 |
|
@param from ファイルの名前を文字列で与えます。
|
| 1075 |
|
|
| 1076 |
|
@param to 新しいファイル名を文字列で与えます。
|
| 1077 |
|
|
| 1078 |
|
@see [[m:File.copy]]
|
| 1079 |
|
|
| 1080 |
|
--- move(from, to) -> bool
|
| 1081 |
|
|
| 1082 |
|
FileToolsクラスにある同名のクラスメソッドと同じです.
|
| 1083 |
|
|
| 1084 |
|
@param from ファイルの名前を文字列で与えます。
|
| 1085 |
|
|
| 1086 |
|
@param to 新しいファイル名を文字列で与えます。
|
| 1087 |
|
|
| 1088 |
|
@see [[m:File.move]]
|
| 1089 |
|
|
| 1090 |
|
--- compare(file1, file2) -> bool
|
| 1091 |
|
|
| 1092 |
|
FileToolsクラスにある同名のクラスメソッドと同じです.
|
| 1093 |
|
|
| 1094 |
|
@param file1 ファイルの名前を文字列で与えます。
|
| 1095 |
|
|
| 1096 |
|
@param file2 新しいファイル名を文字列で与えます。
|
| 1097 |
|
|
| 1098 |
|
@see [[m:File.compare]]
|
| 1099 |
|
|
| 1100 |
|
--- safe_unlink(*filenames) -> Array
|
| 1101 |
|
FileToolsクラスにある同名のクラスメソッドと同じです.
|
| 1102 |
|
|
| 1103 |
|
@param filenames 削除するファイルを指定します。
|
| 1104 |
|
|
| 1105 |
|
@see [[m:File.safe_unlink]]
|
| 1106 |
|
|
| 1107 |
|
--- makedirs(*dirs) -> Array
|
| 1108 |
|
|
| 1109 |
|
FileToolsクラスにある同名のクラスメソッドと同じです.
|
| 1110 |
|
|
| 1111 |
|
@param dirs 作成するディレクトリを指定します。
|
| 1112 |
|
|
| 1113 |
|
@see [[m:File.makedirs]]
|
| 1114 |
|
|
| 1115 |
|
--- install(from, to, mode = nil, verbose = false) -> ()
|
| 1116 |
|
|
| 1117 |
|
FileToolsクラスにある同名のクラスメソッドと同じです.
|
| 1118 |
|
|
| 1119 |
|
@param from コピー元のファイル。
|
| 1120 |
|
|
| 1121 |
|
@param to コピー先のファイル。
|
| 1122 |
|
|
| 1123 |
|
@param mode ファイルのアクセスモード。8進数で指定します。
|
| 1124 |
|
|
| 1125 |
|
@param verbose 真を指定すると詳細を表示します。
|
| 1126 |
|
|
| 1127 |
|
@see [[m:File.install]]
|
| 1128 |
|
|
| 1129 |
|
--- cmp
|
| 1130 |
|
|
| 1131 |
|
[[m:Shell#compare]] と同じです。
|
| 1132 |
|
|
| 1133 |
|
--- mv
|
| 1134 |
|
|
| 1135 |
|
[[m:Shell#move]] と同じです。
|
| 1136 |
|
|
| 1137 |
|
--- cp
|
|
461 |
@param path ファイル名を表す文字列を指定します。
|
| 1138 |
462 |
|
| 1139 |
|
[[m:Shell#copy]] と同じです。
|
|
463 |
@see [[m:File.expand_path]]
|
| 1140 |
464 |
|
| 1141 |
|
--- rm_f
|
|
465 |
--- verbose -> bool
|
|
466 |
--- verbose? -> bool
|
|
467 |
#@todo
|
| 1142 |
468 |
|
| 1143 |
|
[[m:Shell#safe_unlink]] と同じです。
|
|
469 |
--- verbose=(flag)
|
|
470 |
#@todo
|
| 1144 |
471 |
|
| 1145 |
|
--- mkpath
|
|
472 |
--- debug -> bool | Integer
|
|
473 |
--- debug? -> bool | Integer
|
|
474 |
#@todo
|
| 1146 |
475 |
|
| 1147 |
|
[[m:Shell#makedirs]] と同じです。
|
|
476 |
--- debug=(flag)
|
|
477 |
#@todo
|
| 1148 |
478 |
|
| 1149 |
|
#@end
|
|
479 |
--- dirs -> [String]
|
|
480 |
--- dir_stack -> [String]
|
|
481 |
#@todo
|
| 1150 |
482 |
|
| 1151 |
|
--- expand_path(path)
|
|
483 |
--- command_processor -> Shell::CommandProcessor
|
|
484 |
#@todo
|
| 1152 |
485 |
|
| 1153 |
|
Fileクラスにある同名のクラスメソッドと同じです.
|
|
486 |
--- process_controller -> Shell::ProcessController
|
|
487 |
#@todo
|
| 1154 |
488 |
|
| 1155 |
|
@param path ファイル名を表す文字列を指定します。
|
|
489 |
--- record_separator -> String
|
|
490 |
#@todo
|
| 1156 |
491 |
|
| 1157 |
|
@see [[m:File.expand_path]]
|
|
492 |
--- record_separator=(rs)
|
|
493 |
#@todo
|
| 1158 |
494 |
|
| 1159 |
495 |
|