abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 16:00 | Nová verze

Byl vydán Mozilla Firefox 51.0. Z novinek lze upozornit například na upozorňování na přihlašování přes nešifrované spojení (HTTP), podporu pro přehrávání bezeztrátového formátu FLAC nebo podporu WebGL 2. Podrobné informace v poznámkách k vydání a na stránce věnované vývojářům. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 1
23.1. 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 15
23.1. 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 2
23.1. 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 1
23.1. 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
23.1. 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
22.1. 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
22.1. 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (12%)
 (2%)
 (72%)
 (3%)
 (11%)
Celkem 395 hlasů
 Komentářů: 39, poslední včera 19:30
Rozcestník
Reklama

Dotaz: Přerovnání souborů do složek

3.8.2015 21:51 SFilip
Přerovnání souborů do složek
Přečteno: 419×
Zdravím,

nevěděl by někdo, jak udělat skript, který překopíruje do složek soubory - na základě data úpravy?

Např. img1.jpg (datum pořízení: 10.07.2015) -> Vytvoření složky 10.07.2015, pokud neexistuje a přesunout soubory podle dat.

Předem díky za veškerou pomoc

Odpovědi

3.8.2015 22:20 NN
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Na jakou uroven by jsi to chtel granulovat? Dny, mesice, roky? Prikaz find znas?
3.8.2015 22:47 SFilip
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Dny, měsíce a roky (např. 01.01.2015). Přiznám se, že jsem v tomhle úplný začátečník :(

Díky!
3.8.2015 23:51 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Do proměné PREFIX si nastav (absolutní) cestu kam chceš kopírovat:

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.
3.8.2015 23:57 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Vidíš...

Skript vyvoří strukturu např. $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`;
4.8.2015 00:13 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Ještě jsem si teď uvědomil, že chceš zpracovávat fotky. To by se Ti mohlo hodit brát čas z EXIF-u:
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.
4.8.2015 01:45 SFilip
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Mockrát děkuji za vysvětlení a řešení.

Ještě bych měl dotaz, při pokusu o spuštění skriptu se mi zobrazila tato chyba (s pomocí ldd)

ldd: ./sh: Adresář nebo soubor neexistuje /var/www/prerovnani.sh: není dynamickým spustitelným kódem

Nevěděl by někdo, jak tento problém vyřešit? Jedu na Ubuntu 14.04 LTS (GNU/Linux 3.13.0-36-generic x86_64)
4.8.2015 02:02 nobody
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
s pomoci ldd??? ldd je nastroj na zobrazeni jake sdilene knihovny vyuziva binarni program...

skript se pousti pomoci sh:
sh /var/www/prerovnani.sh
nebo mu pridas priznak spusittelny
chmod +x /var/www/prerovnani.sh
a poustis ho rovnou:
/var/www/prerovnani.sh
pokud ses v adrasar kde je script, tak nemusis psat cestu ale uvedes aktualni adresar ktery znazornuje znak ".":
./prerovnani.sh
nebo si script vlozis napr. do adresare /usr/local/bin/ (kterej je v promene $PATH) a pak bez cesty odkudkoliv:
prerovnani.sh
4.8.2015 02:14 SFilip
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Pořád mi to ale vyhazuje chybu: find: `/var/www/prerovnani/test/\r': No such file or directory

Cesty mám nastavené takto:

PREFIX=/var/www/prerovnani/

SRC=/var/www/prerovnani/test/
4.8.2015 14:07 mhepp
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Smaž řádek SRC a ještě i další a napiš je znovu. Na konci rádku Ti zůstalo nějaké smetí v podobě nezobrazitelných znaků.
4.8.2015 15:25 SFilip
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Vše jsem udělal a zobrazuje se následující:

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
4.8.2015 15:46 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Příloha:
Tak jak je v příloze, tak funguje...
4.8.2015 16:28 SFilip
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Moc moc moc díky! Funguje to! :) Můžu se ještě zeptat, jaký program na to psaní používáš?

Díky moc
4.8.2015 16:37 nobody
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
nainstaluj manager mc (midnight commander), je to obdoba norton/windows/total commanderu ve windows, a pres F4 tam mas editor co zvyraznuje syntax, ma sloupcove bloky, prevadi kodovani i spante zalamovani radku kdyz tam dotahnes neco z Widnows ;)
4.8.2015 16:33 nobody
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
ze ty si provadel upravy skriptu na Windows a jeste v nejakem pochybnem editoru? ;)
4.8.2015 16:40 SFilip
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Moc díky za radu :) Ano, na Windows a v poznámkovém bloku :) Aspoň už vím, co a jak.

Ještě jednou díky za pomoc a trpělivost
4.8.2015 22:58 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
To je pak jasné... Problém vznikl rozdílným přístupem Windows světa a Linux světa ke konci řádku. V Linuxu je to jeden znak (\n) a ve Win jsou to dva (\r\n).

Nejjednodušší rada co s tím je edituj v linuxu co linuxu jest a ve windows co windows jest...

Josef Kufner avatar 5.8.2015 00:03 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
Používám toto:
#!/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í.
Hello world ! Segmentation fault (core dumped)
5.8.2015 00:25 nobody
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
hele nechci ti do toho kecat, ale co ti prijde elegantnejsi ? ;)
exiftool -d "%Y-%m-%d" -CreateDate "$f" | awk  '{print $4}'
exiftags "$f" | sed -n '/^Image Created:/s/^[^:]\+: \(....\):\(..\):\(..\).*/\1-\2-\3/p'
Josef Kufner avatar 5.8.2015 11:26 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
d=`exiftool -T -d "%Y-%m-%d" -CreateDate "$f"`
;-)
Hello world ! Segmentation fault (core dumped)
5.8.2015 16:40 nobody
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
d=`exiftool -T -d "%F" -CreateDate "$f"`
;-)
5.8.2015 16:58 jan.xxx
Rozbalit Rozbalit vše Re: Přerovnání souborů do složek
XnView to třeba umí ;-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.