2010-05-30 11 views
5

Estoy tratando de crear una secuencia de comandos para detectar si existe un directorio, y si no, para crearlo.Guión de shell para comprobar si existe un directorio y si no crearlo?

¿Cómo puedo hacer eso?

hice algo de investigación y encontró una pista:

test -d directory 

... volverá true o false dependiendo de si el directorio existe o no.

Pero, ¿cómo ato esto junto con mkdir?

+0

¿Por qué molestarse en probar? Simplemente haz "mkdir foo 2>/dev/null". Si el directorio existe, mkdir fallará y no se dañará. –

Respuesta

9

mkdir -p $directory debe hacer lo que desee. La opción -p creará cualquier directorio primario necesario. Si $directory ya existe como un directorio, el comando no hace nada, y tiene éxito. Si $directory es un archivo normal, permanecerá intacto y el comando fallará con un mensaje de error apropiado.

Sin la opción -p a mkdir, la estrategia test ... || mkdir ... puede fallar si $directory contiene una, y algún componente '/' de ese camino no existe ya. El test es superfluo de todos modos, ya que mkdir hace la misma prueba internamente.

3
test ... || mkdir ... 
+0

Ah ... ¡Simplemente perfecto! –

Cuestiones relacionadas