2012-01-09 43 views

Respuesta

18

Con bash/sh/ksh, que puede hacer:

if [ ! -d /directory/to/check ]; then 
    mkdir -p /directory/toc/check 
fi 

Para los archivos, reemplazar -d con -f, a continuación, puede hacer lo que las operaciones que necesita en el archivo no existente.

+7

En realidad no es necesario el cheque. 'mkdir -p' no actúa en un directorio existente. – thiton

+1

Ese es un punto justo. Sin embargo, lo dejaré como si le diera al OP el marco por si quieren hacer otras cosas antes del 'mkdir'. –

+1

Tenga en cuenta que esto da una condición de carrera en el caso de que el directorio se cree entre la primera y la segunda línea. – Sjoerd

5
test -d /src/com/mot || mkdir /src/com/mot 
4

Compruebe si el directorio existe no existe

if [ -d "$DIRPATH" ]; then 
    # Add code logic here 
fi 

Compruebe si el directorio

if [ ! -d "$DIRPATH" ]; then 
    # Add code logic here 
fi 
5

Bueno, si sólo se comprueba para el directorio para crearlo si no existe, también podría usar:

mkdir -p /src/com/mot 

mkdir -p creará el directorio si no existe, de lo contrario no hace nada.

3

Esto es baisc, pero creo que funciona. Tendrá que establecer algunas variables si está buscando tener una lista dinámica para recorrer y verificar.

if [ -d /src/com/mot ]; 
then 
    echo Directory found 
else 
    mkdir /src/com/mot 
fi 

la esperanza de que es lo que estabas buscando ...

+0

Te estás perdiendo el ';' después del cierre ']' de la cláusula if. –

+0

gracias .. corregido – Silvertiger

+0

@Chirstian The ';' no es necesario después de ']', y ']' no es un corchete de cierre. En el caso del comando '[', el final ']' es solo un argumento para ese comando.La nueva línea tiene el mismo propósito que el punto y coma. –

Cuestiones relacionadas