Me he encontrado con un problema muy tonto con una secuencia de comandos de shell de Linux. Quiero eliminar todos los archivos con la extensión ".bz2" en un directorio. En el script llamo alrm no puede eliminar archivos por comodín de una secuencia de comandos, pero funciona desde un intérprete de comandos de la shell
rm "$archivedir/*.bz2"
donde $ archivedir es una ruta de directorio. Debería ser bastante simple, ¿no? De alguna manera, se las arregla para fallar con este error:
rm: cannot remove `/var/archives/monthly/April/*.bz2': No such file or directory
Pero hay es un archivo en ese directorio llamado test.bz2 y si cambio de secuencia de comandos para
echo rm "$archivedir/*.bz2"
y copiar/pegar el salida de esa línea en una ventana de terminal el archivo se elimina con éxito. ¿Qué estoy haciendo mal?
¿Cuál es la forma correcta de hacerlo si una variable contiene el comodín? Di 'archivedir ="/var/foo/*. Bz2 "'. – mandrake