0 votos

Eliminación de archivos después de una extracción exitosa unrar rm shopt globstar

shopt -s globstar
for f in **/*.rar; do
    dir=`dirname "$f"`;
    unrar e "$f" "$dir" && rm -frv "${f::-2}*";
done

De la prueba de eco del comando rm, el archivo es la ruta correcta. No recibo ningún error sobre una ruta incorrecta ni nada por el estilo. Sé que hay otros métodos para usar find, pero eso no tendría sentido y usaría ciclos extra de cpu esto debería funcionar por todo lo que encontré. ¿Alguna idea sobre cómo utilizar el comando rm correctamente?

1voto

Yoric Puntos 268

Debería funcionar eliminando las comillas dobles:

shopt -s globstar
for f in **/*.rar; do
    dir=`dirname "$f"`;
    unrar e "$f" "$dir" && rm -frv ${f::-2}*;
done

Expansión de la estrella char * no ocurre dentro de las comillas.

Por ejemplo:

echo dir/*.rar puede dar:

dir/file1.rar
dir/file2.rar
dir/file3.rar

Pero echo "dir/*.rar" dará:

dir/*.rar

( rm intentará borrar un nombre de archivo que contenga literalmente un carácter de estrella).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X