Bash prueba si existe archivo o directorio

Bash prueba si existe archivo o directorio

Si necesita verificar si existe un archivo o directorio, puede usar el comando de prueba. Devolverá verdadero si hay un archivo o directorio, y falso de lo contrario. El comando de prueba se puede usar con cualquiera de los siguientes parámetros:

Este artículo tiene pocos detalles sobre la prueba si existe un archivo o directorio en el sistema. Que puede ser muy útil para usted mientras escribe script de shell.

#1. Prueba si existe un archivo

Si requerimos agregar algún contenido o necesitar crear archivos desde el script. Primero, asegúrese de que el archivo ya exista o no. Por ejemplo, uno de mis scripts crea registros en el archivo /TMP/TestFile.registro y debemos asegurarnos de que este archivo exista o no

#!/bin/bash if [-f/tmp/testfile.registro] luego echo "el archivo existe" FI
123456#!/bin/bash if [-f/tmp/testfile.registro] luego echo "el archivo existe" FI

Las declaraciones anteriores también se pueden escribir utilizando el prueba Palabra clave como se muestra a continuación

#!/bin/bash si prueba -f/tmp/testfile.Registre luego echo "El archivo existe" FI
123456#!/bin/bash si prueba -f/tmp/testfile.Logthen echo "El archivo existe" FI

O en una sola línea podemos escribirlo como se muestra a continuación. Esto es muy útil mientras escribe en scripting de shell.

[-f /tmp /testfile.log] && echo "El archivo existe"
1[-f /tmp /testfile.log] && echo "El archivo existe"

Para agregar más parte en el comando anterior

[-f /tmp /testfile.log] && echo "Existe el archivo" || echo "el archivo no existe"
1[-f /tmp /testfile.log] && echo "Existe el archivo" || echo "el archivo no existe"

#2. Prueba si existe el directorio

A veces necesitamos crear archivos dentro de un directorio específico o necesitar un directorio por cualquier otro motivo, debemos asegurarnos de que exista el directorio. Por ejemplo, estamos revisando /tmp/mydir existe por no.

#!/bin/bash if [-d/tmp/mydir] entonces echo "existe" Fi
123456#!/bin/bash if [-d/tmp/mydir] entonces echo "existe" Fi

Las declaraciones anteriores también se pueden escribir utilizando el prueba Palabra clave como se muestra a continuación

#!/bin/bash if test -d/tmp/mydir entonces echo "existe" Fi
123456#!/bin/bash if test -d/tmp/mydirthen echo "existe" Fi

O en una sola línea podemos escribirlo como se muestra a continuación

[-d /tmp /mydir] && echo "El directorio existe"
1[-d /tmp /mydir] && echo "El directorio existe"

#3. Crear archivo/directorio si no existe

Esta es la mejor práctica para verificar la existencia del archivo antes de crearlos, de lo contrario recibirá un mensaje de error. Esto es muy útil al crear scripts de shell requeridos para presentar la creación de archivos o directorio durante el tiempo de ejecución.

Para el archivo:

[ ! -F /TMP /TestFile.log] && touch /tmp /testfile.registro
1[ ! -F /TMP /TestFile.log] && touch /tmp /testfile.registro

Para el directorio:

[ ! -d /tmp /mydir] && mkdir -p /tmp /mydir
1[ ! -d /tmp /mydir] && mkdir -p /tmp /mydir