Antworten:
Wenn Sie auf unixy-Computern ausgeführt werden, vergessen Sie nicht, dass Sie einen Shell-Befehl immer unter Ruby ausführen können, indem Sie ihn in Backticks platzieren.
`mkdir -p /a/b/c`
Pfadname zur Rettung!
Pathname('/a/b/c/d.txt').dirname.mkpath
FileUtils.mkdir_p '/a/b/c'
+ gleichzeitig zu erstellen d.txt
?
Pathname('/a/b/c/d.txt').dirname.mkpath
und File.write('/a/b/c/d.txt', content)
ohne filename = '/a/b/c/d.txt'.rpartition('/').last
und den Rest der Analyse
Sie können auch Ihre eigene Logik verwenden
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
Wenn also der Pfad 'tmp / a / b / c' ist, wenn 'tmp' nicht existiert, wird 'tmp' erstellt, dann 'tmp / a /' und so weiter und so fort.
FileUtils
undPathname
sind wahrscheinlich die wichtigsten Werkzeuge für Ruby-Shell-Scripting.