Ahoj, zkusil jsem trochu modifikovat ten posledni kod, protoze jsem to chtel prevest aby ti bylo prehlednejsi, ale nepovedlo se mi to aby to fungovalo. Muzete jeste pomoc? GPT jsem zatim nezkousel, tak daleko jsem se nedostal, jeste jsem neprisel na to jak updatovat Firefox, natoz abych instaloval nejakeho bota. Ale jestli by to umel opravit ... chci to prevest na KB, MB nebo GB tak aby to bylo prehledne. To s tim printf jeste neumim, takze nemam predstavu... Zatim vse moc tezke.
#!/bin/bash
# Nastavte cestu, kde chcete hledat soubory, pokud jste nevolal skript s parametrem cesty
SEARCH_DIR="${1:-/media/user/alfa_c/WINDOWS/system32}"
# Nastavte názvy výstupních souborů
OUTPUT_FILENAMES="output_fn.txt"
OUTPUT_SIZES_AND_FILENAMES="output_sf.txt"
OUTPUT_CSV="output_s_fd.csv"
# Odstraňte existující výstupní soubory
rm -f "${OUTPUT_FILENAMES}" "${OUTPUT_SIZES_AND_FILENAMES}" "${OUTPUT_CSV}"
# Najděte soubory s velikostí mezi 10 a 20 MB
while read file; do
# Získejte název souboru
filename="${file##*/}"
filepath="${file}"
# Získejte adresář souboru
dirname="${file%/*}"
# Získejte velikost souboru v bytech
size=$(stat -c "%s" "${file}")
if [ "$size" -ge 1024 ]; then
size_U=`echo "($size)/1024"|bc`
size_U=" $size_U KiB"
if [ "$size" -ge 1048576 ]; then
size_U=`echo "($size)/1048576"|bc`
size_U=" $size_U MiB"
if [ "$size" -ge 1073741824 ]; then
size_U=`echo "($size)/1073741824U"|bc`
size_U=" $size_U GiB"
fi
fi
fi
size=$(size_U)
# Počítejte celkovou velikost souborů
total_size=$(( ${total_size} + ${size} ))
# Přidejte název souboru do prvního souboru
echo "${filepath}" >> "${OUTPUT_FILENAMES}"
# Přidejte velikost a název souboru do druhého souboru
echo "${size} ${filepath}" >> "${OUTPUT_SIZES_AND_FILENAMES}"
# Přidejte velikost, název souboru, název adresáře do csv
echo "${size};${filepath};${dirname}" >> ${OUTPUT_CSV}
done < <(find "${SEARCH_DIR}" -type f -size +10M -size -20M)
# Celkovou velikost nalezených souborů přidejte na konec druhého souboru
total_size_K=`echo "($total_size)/1024"|bc`
total_size_M=`echo "($total_size)/1024/1024"|bc`
total_size_G=`echo "($total_size)/1024/1024/1024"|bc`
total_size_K=" $total_size_K KiB"
total_size_M=" $total_size_M MiB"
total_size_G=" $total_size_G GiB"
echo "Celkova velikost: $total_size_G $total_size_M $total_size_K ${total_size}" >> "${OUTPUT_SIZES_AND_FILENAMES}"