Neziskové průmyslové konsorcium Khronos Group vydalo verzi 3.1 specifikace OpenCL (Open Computing Language). OpenCL je průmyslový standard pro paralelní programování heterogenních počítačových systémů.
Homebridge pro integraci chytrých domácích zařízení byl vydán ve verzi 2.0.0. Nově vedle protokolu HomeKit Accessory Protocol (HAP) podporuje standard chytré domácnosti Matter.
Omarchy je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 3.7.0 - The Gaming Edition. Z novinek lze vypíchnout příkaz omarchy a celou řadu herních možností.
CyberChef byl vydán v nové major verzi 11. Přehled novinek v Changelogu. CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag).
Byla vydána nová verze 2.4.67 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 11 zranitelností.
Brush (Bo(u)rn(e) RUsty SHell) je v Rustu napsaný shell kompatibilní s Bash (Bourne Again SHell). Vydána byla verze 0.4.0.
Google zveřejnil seznam 1 141 projektů (vývojářů) od 184 organizací přijatých do letošního, již dvaadvacátého, Google Summer of Code. Přihlášeno bylo celkově 23 371 projektů od 15 245 vývojářů ze 131 zemí.
Na čem pracovali vývojáři GNOME a KDE Plasma minulý týden? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Open source počítačová hra na hrdiny NetHack (Wikipedie, GitHub) byla vydána v nové verzi 5.0.0. První verze této hry byla vydána v roce 1987.
Evropská komise naléhavě vyzvala členské státy EU, aby kvůli ochraně nezletilých na internetu urychlily zavádění unijní aplikace pro ověřování věku a zajistily její dostupnost do konce roku. Členské státy mohou zavést aplikaci EU pro ověřování věku jako samostatnou aplikaci nebo ji integrovat do takzvané evropské peněženky digitální identity.
PREFIX="/cilovy/adresar/"
Do proměné SRC zase adresář, který chceš zpracovat:
SRC="/ZDROJOVY/adresar/"
Zrušíme nastavení jazyka, pro jistotu kvůli formátu data
LANG=C; LANGUAGE=C
A teď to přijde:
find $SRC -type f |
Ti vypíše všechn soubory,
while read i; do
je postupně po jednom načte do proměné i
DATUM=`ls -l --full-time "$i" | awk '{print $6}'`;
uložíš si datum vytvoření souboru
CESTA=$PREFIX/`date -d "$DATUM" +%Y/%m/%d`;
nastavíš si cílový adresář včetně cesty z data,
echo $CESTA;
pro jistotu vypíšeš
mkdir -p $CESTA;
vytvoříš cílový adresář (pokud existuje, nevadí)
cp -p "$i" "$CESTA";
zkopíruješ...
done
a hotovo!
Tak si to zopakujeme:
PREFIX=/cilovy/adresar/
SRC=/zdrojovy/adresar/
LANG=C
LANGUAGE=C
find "$SRC" -type f | while read i; do
DATUM=`ls -l --full-time "$i" | awk '{print $6}'`;
CESTA=$PREFIX/`date -d "$DATUM" +%Y/%m/%d`;
echo $CESTA;
mkdir -p $CESTA;
cp -p "$i" "$CESTA";
done
Skrupt nepřesouvá, ale kopíruje, takže si můžeš zkontrolovat, jestli je vše v pořádku. Pokud jsi ostrostřelec, tak místo "cp -p" použij mv.
$PREFIX/2014/12/24/. Pokud bys chtěl adresáře $PREFIX/24.12.2014/, tak uprav řádek CESTA=...:
CESTA=$PREFIX/`date -d "$DATUM" +%d.%m.%Y`;
DATUM=`exiftool -d "%Y-%m-%d" -CreateDate "$i" | awk '{print $4}'`
To má ale nevýhodu, že EXIF nemusí být správně nastavený -- datum může chybět. Potom potřebuješ nějaký fallback:
[ "x$DATUM" == "x" ] && DATUM=`ls -l --full-time "$i" | awk '{print $6}'`;
ten vezme datum ze souborového systému tak jako původní skript, pokud EXIF neobsahuje Create Date značku.
Pokud Ti to vyhovuje takhle, tak řádek DATUM=... původního skriptu nahraď těma dvěma výše uvedenýma.
sh /var/www/prerovnani.shnebo mu pridas priznak spusittelny
chmod +x /var/www/prerovnani.sha poustis ho rovnou:
/var/www/prerovnani.shpokud ses v adrasar kde je script, tak nemusis psat cestu ale uvedes aktualni adresar ktery znazornuje znak ".":
./prerovnani.shnebo si script vlozis napr. do adresare /usr/local/bin/ (kterej je v promene $PATH) a pak bez cesty odkudkoliv:
prerovnani.sh
Adresář nebo soubor neexistuje PREFIX=/var/www/prerovnani/test/
/var/www/prerovnani.sh: řádek 11: chyba syntaxe poblíž neočekávaného tokenu „done“
/var/www/prerovnani.sh: řádek 11: `done'
Pro kontrolu přidávám i skript:
PREFIX=/var/www/prerovnani/test/
SRC=/var/www/prerovnani/
LANG=C
LANGUAGE=C
find "$SRC" -type f | while read i; do
[ "x$DATUM" == "x" ] && DATUM=`ls -l --full-time "$i" | awk '{print $6}'`;
CESTA=$PREFIX/`date -d "$DATUM" +%Y.%m.%d`;
echo $CESTA;
mkdir -p $CESTA;
cp -p "$i" "$CESTA";
done
#!/bin/sh
if [ $# = 0 ]
then
echo "Usage: $0 *.jpg" >&2
echo " Organizes photos to subdirectories by date they were created." >&2
exit
fi
for f in $@ ; do
d=`exiftags "$f" | sed -n '/^Image Created:/s/^[^:]\+: \(....\):\(..\):\(..\).*/\1-\2-\3/p'`
[ -d "$d" ] || mkdir "$d" && mv -v "$f" "$d/"
done
Načte to datum z EXIF, vyrobí odpovídající adresář a fotku přesune do něj. Jednoduché a elegantní.
exiftool -d "%Y-%m-%d" -CreateDate "$f" | awk '{print $4}'
exiftags "$f" | sed -n '/^Image Created:/s/^[^:]\+: \(....\):\(..\):\(..\).*/\1-\2-\3/p'
Tiskni
Sdílej: