todos subdirectorios para otro mover manejo los listar directorios directorio crear copiar comando carpeta cambiar archivos shell scripting ksh aix mkdir

shell - subdirectorios - unix cambiar de directorio



¿Cómo mkdir sólo si un directorio no existe ya? (13)

Estoy escribiendo un script de shell para ejecutar bajo KornShell (ksh) en AIX. Me gustaría usar el comando mkdir para crear un directorio. Pero el directorio ya puede existir, en cuyo caso no quiero hacer nada. Así que quiero probar si el directorio no existe o suprimir el error "El archivo existe" que mkdir lanza cuando intenta crear un directorio existente.

¿Alguna idea sobre la mejor manera de hacer esto?


Definiendo árboles de directorios complejos con un comando

mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}


El viejo probado y verdadero

mkdir /tmp/qq >/dev/null 2>&1

hará lo que quiera sin ninguna de las condiciones de carrera que muchas de las otras soluciones tienen.

A veces las soluciones más simples (y las más feas) son las mejores.


Esta es una función simple (shell bash) que le permite crear un directorio si no existe.

#---------------------------------- # Create a directory if it doesn''t exist #------------------------------------ createDirectory() { if [ ! -d $1 ] then mkdir -p $1 fi }

Puede llamar a la función anterior como:

createDirectory / tmp / fooDir / BarDir

Lo anterior crea fooDir y BarDir si no existen. Observe la opción "-p" en el comando mkdir que crea directorios recursivamente. Espero que esto ayude.


Esto debería funcionar:

$ mkdir -p dir

o:

if [[ ! -e $dir ]]; then mkdir $dir elif [[ ! -d $dir ]]; then echo "$dir already exists but is not a directory" 1>&2 fi

que creará el directorio si no existe, pero le avisará si el nombre del directorio que está tratando de crear ya está en uso por algo distinto a un directorio.


O si quieres verificar la existencia primero:

if [[ ! -e /path/to/newdir ]]; then mkdir /path/to/newdir fi

-e es la prueba de existencia para shell korn.

También puede intentar googlear un manual de shell korn.


Prueba mkdir -p :

mkdir -p foo

Tenga en cuenta que esto también creará cualquier directorio intermedio que no exista; por ejemplo,

mkdir -p foo/bar/baz

creará los directorios foo , foo/bar , y foo/bar/baz si no existen.

Si desea un error cuando no existen los directorios principales, y desea crear el directorio si no existe, puede test primero la existencia del directorio:

[ -d foo ] || mkdir foo


Puede usar if loop para verificar si el directorio existe o no, si no existe, que crear el directorio.

1) dir = / home / dir_name

if [ ! -d $dir ] then mkdir $dir else echo "Directory exists" fi

2) Puede usar el directorio mkdir con la opción -p para crear un directorio. Verificará si el directorio no está disponible.

mkdir -p $dir

mkdir -p también permite crear la estructura de árbol del directorio. Si desea crear los directorios padre e hijo con el mismo comando, puede optar por mkdir -p

mkdir -p /home/parent_dir /home/parent_dir/child1 /home/parent_dir/child2


Si no quieres mostrar ningún mensaje de error:

[ -d newdir ] || mkdir newdir

Si desea mostrar su propio mensaje de error:

[ -d newdir ] && echo "Directory Exists" || mkdir newdir


Utilice la bandera -p.

man mkdir mkdir -p foo


mkdir ya no admite el cambio -p en los sistemas Windows 8+.

Puedes usar esto:

IF NOT EXIST dir_name MKDIR dir_name


mkdir foo funciona incluso si el directorio existe. Para que funcione solo si el directorio llamado "foo" no existe, intente usar la -p .

Ejemplo: -

mkdir -p foo

Esto creará el directorio llamado "foo" solo si no existe. :)


directory_name = "foo" if [ -d $directory_name ] then echo "Directory already exists" else mkdir $directory_name fi


mkdir -p sam

  • mkdir = Make Directory
  • -p = - padres
  • (no hay error si existe, hacer directorios padre según sea necesario)