Ich bin wirklich neu zu bash und ich versuche ein Skript zu schreiben, um alle Bilder in einem Verzeichnis zu durchlaufen und sie einzeln in ein anderes Verzeichnis zu kopieren. Ich bin nicht wirklich mit der Syntax vertraut, daher kann ich nicht wirklich herausfinden, was ich falsch mache.Kopieren von Bildern in ein anderes Verzeichnis mithilfe von Befehlszeilenargumenten bash
func()
{
FILES=$1
FILES+=/*.jpg
for f in $FILES
do
echo "$f"
cp "$f" $2
done;
}
func $1 $2
Wenn ich Argumente geben wie script ./images ./test
Echos es jedes Bild als
/images/image1.jpg
/images/image2.jpg
und so weiter, aber es ist nicht wirklich Kopieren auf das Testverzeichnis. Irgendwelche Ideen, was das Problem sein könnte?
warum nicht 'cp * .jpg/pfad/zu/destination_dir /'? (Sofern Ihre Dateinamen keine Leerzeichen enthalten). 'cp' ist so konzipiert, dass es funktioniert. Sie können Ihre Online-Dokumentation von cmd-line lesen, indem Sie 'man cp' eingeben. Viel Glück. – shellter
Eigentlich habe ich Ihren Code ausprobiert und es hat so funktioniert, wie Sie es erwartet haben. Es kopierte 2 JPG-Dateien in den Testordner. Könnte es sein, dass Sie Ihren Code nicht ausführen, wo sich 'test' Ordner befindet – Esref
Vielen Dank für die Bestätigung für mich. Ich habe es auf einem Server ausgeführt und die Verzeichnisse waren nicht richtig erfrischend, denke ich, aber es funktionierte tatsächlich, danke! – Taylor