Ich habe diesen Befehl in einem Bash-Shell-Skript, dessen Zweck es ist, einen Java-Befehl anzuwenden,HTML-Kompressor, zu jeder HTML-Datei, die in einem Verzeichnis gefunden wird:
find $DIR -type f -name '*.html' -exec java -jar $BASEDIR/Upload/htmlcompressor-1.5.3.jar --remove-intertag-spaces {} \;
Obwohl die Ausgabe in der Befehlszeile darauf hinzuweisen scheint, dass die einzelnen Dateien gefunden und etwas damit gemacht wird, werden die Ergebnisse nicht tatsächlich in die Dateien geschrieben.
Laut der Dokumentation für htmlcompressor ist die Verwendung folgende:
Verwendung: java -jar htmlcompressor.jar [Optionen] [Eingabe]
Am Ende sollte also eine Eingabedatei mit dem Namen stehen, aber ich dachte, der find
Befehl würde das übernehmen. Aber da liege ich wohl falsch.
Was kann ich tun, damit es tatsächlich auf die gefundenen Dateien reagiert?
Antwort1
Ihre Angaben scheinen richtig zu sein. Sie können die java
korrekte Ausführung überprüfen, indem Sie Folgendes echo
in den Befehl einfügen:
find $DIR -type f -name '*.html' -exec echo java -jar $BASEDIR/Upload/htmlcompressor-1.5.3.jar --remove-intertag-spaces {} \;
(unter der Annahme eines ordnungsgemäß POSIX-kompatiblen Systems, das über nicht integrierte Versionen der integrierten Shell-Funktionen im Standard verfügt PATH
).
Darüber hinaus möchten Sie möglicherweise einen der resultierenden Befehle manuell ausführen, um zu überprüfen, ob er ordnungsgemäß funktioniert.