Câu trả lời:
Nếu bạn đang chạy trên các máy unixy, đừng quên rằng bạn luôn có thể chạy lệnh shell dưới ruby bằng cách đặt nó vào các dấu gạch ngược.
`mkdir -p /a/b/c`
Tên đường dẫn để giải cứu!
Pathname('/a/b/c/d.txt').dirname.mkpath
FileUtils.mkdir_p '/a/b/c'
+ tạo d.txt
cùng một lúc?
Pathname('/a/b/c/d.txt').dirname.mkpath
và File.write('/a/b/c/d.txt', content)
không có filename = '/a/b/c/d.txt'.rpartition('/').last
và phần còn lại của phân tích cú pháp
Bạn cũng có thể sử dụng logic của riêng mình
def self.create_dir_if_not_exists(path)
recursive = path.split('/')
directory = ''
recursive.each do |sub_directory|
directory += sub_directory + '/'
Dir.mkdir(directory) unless (File.directory? directory)
end
end
Vì vậy, nếu đường dẫn là 'tmp / a / b / c' nếu 'tmp' không tồn tại 'tmp' được tạo, thì 'tmp / a /', v.v.
FileUtils
vàPathname
có lẽ là những công cụ quan trọng nhất để tạo script Ruby shell.