Entonces sé cómo crear varios directorios al mismo tiempo, por ejemplo.
mkdir -p tree/{dir1,dir2,dir3}
pero ¿cómo creo un directorio y coloco archivos en él al mismo tiempo? En definitiva quiero hacer esto en muchos al mismo tiempo.
Respuesta1
No existe un comando único para hacer esto, pero puedes crear el tuyo propio:
mkpath(){ mkdir -p ${1%/*} && mkfile 0 $1; }
que se puede llamar con un solo argumento que especifica la ruta de un archivo que se creará. Se crearán todos los directorios que deban crearse en el camino, momento en el cual se crea un archivo vacío con el nombre de archivo especificado, por ejemplo
mkpath dir1/dir2/dir3/file.txt
Nota: Esta es una función de ejemplo que no se ha probado exhaustivamente para atender diferentes entradas y situaciones. Es posible que se requiera una captura de errores adecuada para garantizar la solidez.
Como hereda las características de las funciones que lo componen mkdir
y mkfile
, dos características importantes se mantienen mkpath
en su estado actual:
- Parece seguro especificar una ruta que incluya directorios preexistentes, y estos directorios y sus contenidos senoser sobrescrito;
- Por el contrario, si existe un archivo en la ubicación especificada,voluntadse sobrescribirá con un archivo en blanco y no será posible recuperar el contenido del archivo antiguo.