blob: cf797abccd0fa5ef4b9d0e234496fbe6a014e9d2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/usr/bin/env bash
# lightning-randomize-wallpapers-unique.sh
WALLPAPER_DIR="$HOME/Pictures/Wallpapers"
cd "$WALLPAPER_DIR" || exit 1
# Собираем все картинки в массив
files=(*.{jpg,jpeg,png})
[ ${#files[@]} -eq 0 ] && exit 0
# Массив для уже сгенерированных имён
declare -A used_names
# Перемешиваем массив файлов
shuffled=($(printf "%s\n" "${files[@]}" | shuf))
# Функция генерации случайного имени с проверкой уникальности
generate_unique_name() {
local ext=$1
local name
while :; do
name="$(tr -dc a-z0-9 </dev/urandom | head -c 3).$ext"
[[ -z "${used_names[$name]}" ]] && break
done
used_names[$name]=1
echo "$name"
}
# Переименовываем файлы
for file in "${shuffled[@]}"; do
ext="${file##*.}"
rand_name=$(generate_unique_name "$ext")
mv "$file" "$rand_name"
done
|