Ruby 的 FileUtils 模块

 简单点的话你可以认为 FileUtils 的作用就是为了用来在 Ruby 脚本中执行一些常规的 Linux 命令。

可能需要先:

require 'fileutils'

FileUtils.cd(dir)

[1] pry(main)> Dir.pwd
=> "/root/workspace/ruby_learning"
[2] pry(main)> FileUtils.cd "../"
=> 0
[3] pry(main)> Dir.pwd
=> "/root/workspace"

FileUtils.pwd() 

[6] pry(main)> FileUtils.pwd()
=> "/root/workspace"

FileUtils.mkdir("test_dir") 

[11] pry(main)> `ls`.split
=> ["foo.txt", "hello.rb", "test.rb", "test.txt"]
[12] pry(main)> FileUtils.mkdir("test_dir")
=> ["test_dir"]
[13] pry(main)> `ls`.split
=> ["foo.txt", "hello.rb", "test_dir", "test.rb", "test.txt"]

FileUtils.mkdir(["test1", "test2"]) 

[18] pry(main)> FileUtils.mkdir(["test1", "test2"])
=> ["test1", "test2"]

FileUtils.mkdir_p("test/test_dir")

[16] pry(main)> FileUtils.mkdir("test/test_dir")
Errno::ENOENT: No such file or directory @ dir_s_mkdir - test/test_dir
from /usr/local/ruby-2.7.1/lib/ruby/2.7.0/fileutils.rb:250:in `mkdir'
[17] pry(main)> FileUtils.mkdir_p("test/test_dir")
=> ["test/test_dir"]

 FileUtils.mkdir_p(["test/test_dir1", "test/test_dir2"])

[21] pry(main)> FileUtils.mkdir_p(["test/test_dir1", "test/test_dir2"])
=> ["test/test_dir1", "test/test_dir2"]

FileUtils.rmdir("test1") 

[20] pry(main)> FileUtils.rmdir("test1")
=> ["test1"]

 FileUtils.rm_r("test")

[22] pry(main)> FileUtils.rmdir("test")
Errno::ENOTEMPTY: Directory not empty @ dir_s_rmdir - test
from /usr/local/ruby-2.7.1/lib/ruby/2.7.0/fileutils.rb:268:in `rmdir'
[24] pry(main)> FileUtils.rm_r("test")
=> ["test"]

 FileUtils.ln('test.rb', 'test.rb.bak')

[25] pry(main)> FileUtils.ln('test.rb', 'test.rb.bak')
=> 0

 FileUtils.ln_s('test.rb', 'test.rb.link')

[28] pry(main)> FileUtils.ln_s('test.rb', 'test.rb.link')
=> 0

 FileUtils.cp('test.rb', './test_dir')

[29] pry(main)> FileUtils.cp('test.rb', './test_dir')
=> nil

FileUtils.cp_r('./test_dir', './test') 

[39] pry(main)> FileUtils.cp_r('./test_dir', './test')
=> nil

FileUtils.mv('hello.rb', 'world.rb') 

[40] pry(main)> FileUtils.mv('hello.rb', 'world.rb')
=> 0

FileUtils.rm('foo.txt') 

[41] pry(main)> FileUtils.rm('foo.txt')
=> ["foo.txt"]
[42] pry(main)> FileUtils.rm(['/root/test.txt', '/root/test2.txt'])                                                             
=> ["/root/test.txt", "/root/test2.txt"]

FileUtils.rm_r('test_dir') 

[43] pry(main)> FileUtils.rm_r('test_dir')
=> ["test_dir"]

FileUtils.rm_rf('test') 

[44] pry(main)> FileUtils.rm_rf('test')
=> ["test"]

FileUtils.chmod(644, 'world.rb') 

[45] pry(main)> FileUtils.chmod(644, 'world.rb')
=> ["world.rb"]

FileUtils.touch('new.rb') 

[46] pry(main)> FileUtils.touch('new.rb')
=> ["new.rb"]

FileUtils.chown("looking", "looking", "new.rb") 

[47] pry(main)> FileUtils.chown("looking", "looking", "new.rb")
=> ["new.rb"]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值