Genau das, was ich erreichen möchte, ist komplexer, als der Titel vermuten lässt, aber ich wollte es relativ kurz halten. Ich versuche folgendes zu tun; (Ich bin immer noch sehr neu zu bash)Kopieren von Dateien von einem Verzeichnis in ein anderes
"Nehmen Sie ein Verzeichnis von Bildern, deren Name als Argument angegeben ist, wie das Verzeichnis XXX, und das erzeugt ein anderes Verzeichnis, dessen Name als ein anderes Argument angegeben ist, enthält Kopien dieser Bilder, aber die sind halb so groß (in linearen Dimensionen). "
Ich habe versucht, das mit dem folgenden Skript zu tun.
#!/bin/bash
if [ "$1" != "" ]; then
orgdir$1
fi
if [ "$2" != "" ]; then
cpydir=$2
fi
find "${orgdir}" | while read -r file
do
filesize=$(wc -c <"$orgdir$file")
dd if=$orgdir of=$cpydir bs=$(($filesize/2))
done
im Terminal als ./script.sh ./test ./TestMove Rennen, dass ich die folgenden Fehler bekommen.
line 11 ./Test./Test: No such file or directory.
Ich habe versucht, immer nur das wc -c von $ file aber das sagt WC Verzeichnis als Standardeingabe nimmt
und;
line 12 ""/2: syntax error: operand expected (error token is """/2")
Vermutlich, weil die Dateigröße nicht den richtigen Wert erhält?
Ich bin auch nicht sicher, mit DD die Dateien zu kopieren und die Hälfte der Größe ist der beste Weg, aber ich bin nicht in der Lage, andere zu finden.
Hälfte der Bytes einer Bilddatei kopieren wird wahrscheinlich nicht in einem gültigen Bild führen gehen . – chepner
Ja, ich dachte das, als ich die Aufgabe zum ersten Mal las. Ich bin mir nicht sicher, ob ich die Hälfte davon kopieren oder komprimieren soll, um ehrlich zu sein. Ist das möglich? – Chaz
Wenn er wörtlich "ein 300x300 Bild in ein 150x150 Bild verwandeln" bedeutet, dann müssen Sie ein Programm verwenden, das das Format der Datei versteht. – chepner