Для обработки файлов с пробелами следует использовать директиву -print0
для поиска GNU и параметр -d
для команд bash. читать команду
. Также непреодолимо указывать в кавычках "$ variable"
find pics/ -type f -print0 | while IFS= read -rd "" filename; do
v=$((RANDOM % 2))
if (( v == 0 )); then
cp "$filename" dups/$RANDOM.jpg
fi
done
Биты IFS =
и -r
предназначены для того, чтобы правильно обрабатывались пробелами и обратными косыми чертами. прочитать команду
.
Внутри ((...))
арифметических выражений вы можете указывать переменные оболочки без $
.