Ho un sacco di archivi rar strutturati in singole cartelle e vorrei script di decomprimere tutti.Trova i file ed esegui il comando
Ho difficoltà a capire come dovrebbe essere fatto e ho bisogno di aiuto.
#!/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
Non ho familiarità con lo scripting di bash e presumo che il codice sia sbagliato più di una volta. Ma credo che questo dovrebbe essere la struttura di base
'find', nel modo in cui l'ho pubblicato, * impedirà * di troppi errori di file aperti. Immagino che tu abbia fatto qualcosa come "find foo * ...", nel senso che hai usato un glob per il nome della directory (o qualcos'altro di cui non sono a conoscenza). Sentiti libero di fare una domanda sul tuo particolare problema. Lascia il link alla domanda qui e ti darò un'occhiata. – hek2mgl
Il problema è ovviamente 'per i in 'ls/var/cpanel/users /';'. Dovrebbe essere 'per i in/var/cpanel/users/*' – hek2mgl
@Luka Il problema è il '" * .jpg "' - che non è quotato, guardalo. Si espanderà a tutti i file jpg in quella cartella che fa scattare quell'errore. Il comando che stai cercando è: 'for i in/var/cpanel/users/*; do sudo -H -u "$ i" trova "/ home/$ i/public_html" -tipo f -name '* .jpg' -execdir jpegoptim {} \; ; done' – hek2mgl