¿Cómo creo un archivo dentro de un directorio al mismo tiempo?

¿Cómo creo un archivo dentro de un directorio al mismo tiempo?

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 mkdiry mkfile, dos características importantes se mantienen mkpathen 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.

información relacionada