Tengo una pregunta simple, pero no he podido encontrar ninguna respuesta. Hay 2 conmutadores para la condición if que verifican un archivo, -e y -f. ¿Cuál es la diferencia entre esos dos?Diferencia entre if -e y si -f
Respuesta
Ver: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
creo que estos no "si los interruptores", más bien "interruptores de prueba" (porque hay que utilizarlos dentro de corchetes []
pero la diferencia es:.
[ -e FILE ]
cierto si fichero existe.
Esto devolverá cierto tanto para /etc/hosts
y /dev/null
.
[ -f FILE ]
Verdadero si FILE existe y es un archivo normal. Esto devolverá verdadero para /etc/hosts
y falso para /dev/null
(porque no es un archivo normal).
$ man bash
-e file
True if file exists.
-f file
True if file exists and is a regular file.
un archivo normal es algo que no es un/enlace simbólico/socket/dispositivo de directorio, etc.
-e
cheques para cualquier tipo de objeto del sistema de ficheros; -f
solo busca un archivo normal.
La instrucción if en realidad utiliza el programa 'prueba' para las pruebas. Se puede escribir si las declaraciones de dos maneras:
if [ -e filename ];
o
if test -e filename;
Si conoce esto, se puede comprobar fácilmente la página del manual de 'prueba' para averiguar el significado de las diferentes pruebas:
man test
- 1. Diferencia entre la directiva de preprocesador #if y normal si
- 2. ¿Cuál es la diferencia entre IDelegateEvent e IEvent en F #?
- 3. Diferencia entre Seq.map y Seq.collect en F #
- 4. Diferencia de rendimiento entre IIf() y Si
- 5. Diferencia entre initWithNibName e initWithCoder
- 6. diferencia entre SDK e IDE
- 7. ¿Hay alguna diferencia entre usar múltiples declaraciones if y declaraciones if if?
- 8. Comprobando si un archivo es legible y existe en una condición if: if [[-r -f "/file.png"]]
- 9. Diferencia entre las directivas del preprocesador #if y #ifdef
- 10. Diferencia entre devoluciones e impresión en python?
- 11. ¿Rendimiento o diferencia de estilo entre "si" y "si no"?
- 12. Diferencia entre java 'assert' y 'if() {} else exit;'
- 13. diferencia entre #if defined (WIN32) y #ifdef (WIN32)
- 14. ¿Cuál es la diferencia entre IF-ELSE y SWITCH?
- 15. En Perl, ¿cuál es la diferencia entre "si se define $ count" y "if $ count"?
- 16. ¿Cuál es la diferencia de rendimiento, si existe, entre if (! Foo) y if (foo == false) en Java?
- 17. Diferencia entre "importar lib.foo" e "importar lib.foo como f" en Python
- 18. ¿Hay alguna diferencia entre `if bool (x)` y `if x` en Python?
- 19. Diferencia entre cvMat, Mat e IpImage
- 20. Diferencia entre EXISTS e IN en SQL?
- 21. ¿Diferencia entre paquete e instalación de gema?
- 22. Diferencia entre var_dump, var_export e print_r
- 23. Diferencia entre objetos mutables e inmutables
- 24. diferencia entre puntos numpy() e interior()
- 25. Diferencia entre default-initialize e value-initialize?
- 26. ¿Diferencia entre long e int en C#?
- 27. JavaScript: ¿Cuál es la diferencia entre `if (! X)` y `if (x == null)`?
- 28. ¿Cuál es la diferencia entre if (! Variable) y if (isset ($ variable))?
- 29. ¿Hay alguna diferencia entre RPC e IPC?
- 30. ¿La diferencia entre sys.stdout.write e print?
@jww Es una pregunta sobre el bloque if en las secuencias de comandos bash; puede que no sea un lenguaje de programación, pero seguro que no lo llamaría fuera del tema. – Ahatius
Bastante justo. Lo etiquetaron como tal; así que lo movió hacia la programación y lejos de "cómo uso este comando". Retractado – jww