4 votos

La forma más fácil de crear varias carpetas anidadas

Para los proyectos, tengo que crear nuevos conjuntos de carpetas en finder, a veces anidados a tres o cuatro niveles, de forma regular. Actualmente copio y pego el conjunto anterior y trabajo a través de cada carpeta borrando su contenido hasta que tengo un nuevo conjunto vacío.

He visto cómo se pueden crear carpetas utilizando un archivo .txt y el terminal, pero no están anidadas. ¿Hay alguna forma rápida de crear una "plantilla" para una estructura de carpetas específica que pueda llamar cuando sea necesario?

5voto

  • crear un archivo de texto con la lista de todos los directorios que se van a crear y guardarlo en un lugar conveniente

    foo foo/bar1 foo/bar2 bar bar/foo bar/bar bar/bar/foo

  • crear el directorio principal de un nuevo proyecto y cd en él

  • ejecute mkdir -p $(< /path/to/textfilefromabove)


Por conveniencia, yo pondría esto en un shell script o función:

new_project() {
    # new_project [ -t template ] projectdir

    if [ "$1" == "-t" ]; then
        local _template="~/.templates/$2"
        shift 2
    else
        local _template=~/.templates/default
    fi

    if [ ! -r "$_template" ]; then
        echo "Template "$_template not found"
        exit 1
    fi

    mkdir -p "$1"
    cd "$1"
    mkdir -p $(< "$_template")
}

PD: Técnicamente, el archivo de plantilla sólo necesitaría listar las rutas de las hojas, todos los directorios intermedios se crearían automáticamente.

3voto

Michael Zhou Puntos 167

Yo usaría la expansión de llaves del shell para crear la jerarquía de carpetas. Como ejemplo usando la jerarquía de carpetas de nohillside-

mkdir -p ./{foo/bar{1,2},bar/{foo,bar/foo}}

Podrías meter esto en una función shell o crear un shell script. Una advertencia: los nombres de carpeta/directorio no pueden contener espacios.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X