Tengo un montón de archivos rar estructurado en carpetas individuales y quisiera script desembalaje de todos ellos.

Estoy teniendo problemas para averiguar cómo se debe hacer y necesita algo de ayuda.

#!/bin/bash
## For all inodes
for i in pwd; do
    ## If it's a directory
    if [ -d "$i" ] then
        cd $i

        ## Find ".rar" file
        for [f in *.rar]; do
            ./bin/unrar x "$f" # Run unrar command on filename
            cd ..
        done
    done
done

Yo no estoy familiarizado con scripts de bash, y yo supongo que el código está mal más de una vez. Pero supongo que esta debe ser la estructura básica

OriginalEl autor Linuxxon | 2014-11-13

2 Comentarios

  1. 18

    Puede utilizar el comando:

    find -name '*.rar' -exec unrar x {} \;

    find ofrece la opción de exec que se va a ejecutar ese comando en cada archivo que se ha encontrado.

    find, en la manera en la que he publicado, evitar el de demasiados abrir el archivo de errores. Supongo que fue algo así como find foo* ..., lo que significa que ha utilizado un pegote para el nombre del directorio (o algo más que no conozco). Siéntase libre de hacer una pregunta acerca de su problema en particular. Colocar el enlace a la pregunta aquí y voy a echar un vistazo por allí.
    El problema es, obviamente, la for i in 'ls /var/cpanel/users/';. Debe ser for i in /var/cpanel/users/*
    El problema es el "*.jpg" – que no cotizan en bolsa, mire. Se expandirá a todos los archivos jpg en la carpeta que desencadena ese error. El comando que se busca es: for i in /var/cpanel/users/*; do sudo -H -u "$i" find "/home/$i/public_html" -type f -name '*.jpg' -execdir jpegoptim {} \; ; done
    PS: Si está satisfecho, por favor, vamos a eliminar los comentarios de aquí, que son engañosos.

    OriginalEl autor hek2mgl

  2. 7

    Usted no necesita una secuencia de comandos.

    find . -name "*.rar" -exec unrar x {} \;

    Además, se pueden transferir los resultados de la búsqueda para unrar comando.

    find . -name "*.rar" | xargs unrar x

    OriginalEl autor jherran

Dejar respuesta

Please enter your comment!
Please enter your name here