En perl, usando uno de mis módulos favoritos:Path::Tiny.
path("/opt/test/test.txt")->touchpath;
Del documento:
Combina mkpath y touch. Crea el directorio principal si no existe, antes de tocar el archivo.
Me gusta escribir muy poco, así que puse este comando en un fn con nombre en mi .profile, pero usé esta fórmula durante años antes de hacerlo:
mkdir -p dirname/sub/dir && touch $_/filename.ext
La variable $_
almacena el último argumento del comando anterior. Bastante útil para saber en general.
mkdir B && touch B/myfile.txt
Alternativamente, cree una función:
mkfile() {
mkdir -p $( dirname "$1") && touch "$1"
}
Ejecútelo con 1 argumento:ruta de archivo. Diciendo:
mkfile B/C/D/myfile.txt
crearía el archivo myfile.txt en el directorio B/C/D.
En un script de shell, simplemente puede hacer:
mkdir -p /opt/test && touch /opt/test/test.txt
mkdir -p
no fallará (y no hará nada) si el directorio ya existe.
En perl, usa make_path
del File::Path
módulo, luego crea el archivo como quieras. make_path
tampoco hace nada si el directorio ya existe, por lo que no es necesario que lo verifique usted mismo.