#load "unix.cma" let mkdir_p ~path ~perms = let ps = String.split_on_char '/' path in let rec aux acc = function [] -> () | p::ps -> let this = String.concat Filename.dir_sep (List.rev (p::acc)) in Unix.mkdir this perms; aux (p::acc) ps in aux [] ps let () = mkdir_p "path/to/dir" 0o700