Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: okoun 12 Září 2008, 10:03:24

Název: třídění souboru do složek
Přispěvatel: okoun 12 Září 2008, 10:03:24
potřebuji třidit soubory do složek. v názvu souboru je datum. potřebuji to naházet podle data do adresářů. je to monitoring z ip kamery.
nevíte jaký soft na to použít?

díky za reakce
Název: Re: třídění souboru do složek
Přispěvatel: kkaarreell 12 Září 2008, 11:35:18
kdybys to bliz popsal (jak se presne jmenuji a kam se maji presouvat), tak by to mohl zaridit jednoduchy skript, ktery bys jednou za cas spustil cronem.
Název: Re: třídění souboru do složek
Přispěvatel: okoun 12 Září 2008, 11:41:17
mas napriklad soubor 2008-05-01-14-30-25.jpg
je dulezite to 2008 rok 05 den 01 mesic, cas je nepodstatny a ted potrebuji aby to udelalo adresare nejdriv spustil filtraci podle roku a potom v kazdem roce to rozfiltrovat dnu.
Takze az budu chtit hledat 1.6.08 tak se kouknu do adresare 2008 zvolim 6 mesic a patricny den a v tom patricnem dnu budou vsechny obrazky z toho dne.
Název: Re: třídění souboru do složek
Přispěvatel: kkaarreell 12 Září 2008, 14:05:07
Tohle jsem narychlo splacal, kdyztak si to uprav (minimalne by to chtelo nejake testy, zda jsou predany spravne parametry).
Skriptu predas dva parametry. Prvnim je adresar, kde jsou ty obrazky (jez se maji tridit) a druhym adresar, kam se maji roztridit.
Takze to muze vypadat jako:
Kód: [Vybrat]
./roztrid.sh ~/kamera ~/kamera/setrideno
Zpracuje to jpg soubory v adresari ~/kamera a roztridi je do adresare ~/kamera/setrideno

A tohle je obsah skriptu roztrid.sh.
Kód: [Vybrat]
#!/bin/bash

odkud="$1"
kam="$2"

cd $odkud

echo "zpracovavam soubory v adresari $PWD"

for soubor in `ls -f *.[jJ][pP][gG] 2> /dev/null`;
do

  # ziskam rok, mesic a den z nazvu souboru
  # predpokladam nazvy souboru tvaru jako 2008-05-01-14-30-25.jpg
  rok=`echo $soubor | cut -d \- -f 1`
  den=`echo $soubor | cut -d \- -f 2`
  mesic=`echo $soubor | cut -d \- -f 3`

  # vytvorim (pokud neexistuje) prislusny adresar
  cil="$kam/$rok/$mesic/$den"
  mkdir -p $cil

  # presunu soubor
  echo "presouvam $soubor do $cil"
  mv $soubor $cil

done;

Snad to pobezi, zkousim to na dost nestandardnim prostredi.