Compruebe si algo existe en una ruta dada usando el operador de prueba de archivo -e
.
print "$base_path exists!\n" if -e $base_path;
Sin embargo, esta prueba es probablemente más amplia de lo que esperaba. El código anterior generará resultados si existe un archivo simple en esa ruta, pero también se activará para un directorio, una tubería con nombre, un enlace simbólico o una posibilidad más exótica. See the documentation para más detalles.
Dada la extensión de .TGZ
en su pregunta, parece que espera un archivo simple en lugar de las alternativas. El operador de prueba de archivo -f
pregunta si una ruta conduce a un archivo simple.
print "$base_path is a plain file!\n" if -f $base_path;
La documentación perlfunc cubre la larga lista de Perl's file-test operators que cubre muchas situaciones que se encontrará en la práctica.
-r
archivo es legible por efectivos UID/GID.
-w
El archivo se puede escribir mediante uid/gid efectivo.
-x
El archivo es ejecutable por uid/gid efectivo.
-o
El archivo es propiedad de effective uid.
-R
archivo es legible por bienes UID/GID.
-W
El archivo puede ser escrito por uid/gid real.
-X
El archivo es ejecutable por uid/gid real.
-O
El archivo es propiedad de real uid.
-e
Existe el archivo.
-z
El archivo tiene un tamaño cero (está vacío).
-s
El archivo tiene un tamaño distinto de cero (devuelve el tamaño en bytes).
-f
El archivo es un archivo simple.
-d
Archivo es un directorio.
-l
archivo es un enlace simbólico (falso si los enlaces simbólicos no son compatibles con el sistema de archivos).
-p
El archivo es una tubería con nombre (FIFO) o Filehandle es una tubería.
-S
El archivo es un zócalo.
-b
El archivo es un archivo especial de bloque.
-c
El archivo es un archivo especial de caracteres.
-t
Filehandle está abierto a un tty.
-u
El archivo tiene setuid bit set.
-g
El archivo tiene setgid bit set.
-k
El archivo tiene un conjunto de bits adhesivos.
-T
archivo es un archivo de texto ASCII o UTF-8 (conjetura heurístico).
-B
archivo es un archivo “binario” (opuesto de -T
).
-M
Tiempo de inicio del script menos el tiempo de modificación del archivo, en días.
-A
Lo mismo para el tiempo de acceso.
-C
Lo mismo para el tiempo de cambio del inode (Unix, pueden ser diferentes para otras plataformas)
hey tocino, un placer verte. entonces, ¿incluso funciona para una ruta relativa? pensé que solo funcionaba para archivos en particular ... buenas gracias – superstar
@superstar ¡Hola otra vez! Sí, '-e' funciona con rutas relativas, pero creo que puedo haber malentendido tu pregunta. ¿Tiene un * directorio * llamado 'myMock.TGZ', y desea saber si ese directorio contiene un archivo con un nombre particular? ¡Ayúdenos a darle mejores respuestas editando su pregunta para incluir ejemplos! –