Ich habe viele RAR-Archive in einzelnen Ordnern strukturiert und möchte Skript entpacken sie alle.Dateien finden und Befehl ausführen
Ich habe Probleme herauszufinden, wie es gemacht werden soll und brauche Hilfe.
#!/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
Ich bin nicht vertraut mit Bash Scripting und ich nehme an, der Code ist mehr als einmal falsch. Aber ich denke, das ist die Grundstruktur sein sollte
'finden', in der Art, wie ich es gepostet habe, wird * verhindern * Sie von zu vielen offenen Dateifehlern. Ich nehme an, du hast etwas wie 'find foo * ...' gemacht, was bedeutet, dass du einen Glob für den Verzeichnisnamen benutzt hast (oder etwas anderes, das mir nicht bekannt ist). Fühlen Sie sich frei, eine Frage zu Ihrem speziellen Problem zu stellen. Lassen Sie den Link zu der Frage hier los und ich werde mich dort umsehen. – hek2mgl
Das Problem ist offensichtlich das 'für i in 'ls/var/cpanel/users /';'. Es sollte sein "für i in/var/cpanel/users/*' – hek2mgl
@Luka Das Problem ist das '" * .jpg "' - das ist nicht notiert, schau es dir an. Es wird auf alle JPG-Dateien in diesem Ordner erweitert, die diesen Fehler auslösen. Der Befehl, nach dem Sie suchen, lautet: 'for i in/var/cpanel/users/*; tu sudo -H -u "$ i" finde "/ home/$ i/public_html" -type f -name '* .jpg' -execdir jpegoptim {} \; ; done' – hek2mgl