Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Komplexni skript pro uklid adresaru  (Přečteno 3092 krát)

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Komplexni skript pro uklid adresaru
« kdy: 14 Srpna 2010, 21:57:44 »
Dlouho jsem si pohraval s myslenkou, udelat si nejaky skriptik ktery by dokazal nasledujici:

Priklad, v adresari downloads mam vsechno mozny a potreboval bych aby jednim klikem se vse presunulo tam kam ma, hezky uklizene. (fotky do fotek, scripty do scriptu atd). To same treba kdyz programuji, tak desktop se zaprasi fotkama, scriptama, poznamkama atd. Dulezite vsak bylo ne presunout to jenom nekam , ale zaroven roztridit.

No a tak jsem si udelal: File-Organizer

Script funguje presne tak jako chci, je zalozenej na zaklade detekce koncovky. Podporuje vice nez 470 formatu, pri cisteni plochy zastupci programu co maji koncovku .desktop jsou opetovne vytvareny, takze je nemaze. Funkcnost je ciste jenom vuci souborum, nema vlyv na adresare.


K dispozici jsou dve verze pouziti. Prvni je spousteni jenom samotneho skriptu, kde vsak treba dbat na to aby jste neuklizeli adresar ve kterym se samotnej skript nachazi, jinak se uklidi take. Tou druhou moznosti, je za pomoci install.sh skriptu provest instalaci systemove, co nasledne zobrazi take novou polozku v menu pod "Accessories" jako "File-organizer".

Samotne nastaveni cilovych adresaru je jednoduchy, po zpusteni si staci vybrat moznost "edit settings" a zde je videt jak cilove adresare vypadaji. Adresare je mozne si editovat anebo ponechat preddefinovane. Jestli adresar ktery je preddefinovanej , nemate tak ten bude automaticky vytvoren. Pri editaci pozor na dodrzovani radku , jsou totiz detekovany za pomoci readline, takze radky ktere potrebujeme jsou radky 3 az 8.

Samotnej script je dostupnej ke stazeni zde: http://gnome-look.org/content/show.php/Directory+cleaner+and+files+organizer?content=128808

[attachment deleted by admin]
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: Komplexni skript pro uklid adresaru
« Odpověď #1 kdy: 16 Srpna 2010, 14:03:06 »
A nebylo by to jednodušší přes mime-type?
Kód: [Vybrat]
#! /bin/bash
A=/tmp

find ~/Plocha -type f | while read F; do
  # vytáhne mime-type
  typ=`gvfs-info -a standard::content-type "$F" | grep type | cut -d: -f4`

  # roztřídí do souborů dle mime-type
  case $typ in
    *rtf*|*opendocument*|*excel*|*office*|*pdf*|*msword*|*calc*|*writer* )
      echo `basename "$F"` >> $A/docs
    ;;
    *audio*|*video* )
      echo `basename "$F"` >> $A/multimedia
    ;;
    *image* )
      echo `basename "$F"` >> $A/images
    ;;
    *java*|*perl*|*ruby*|*shell*|*python* )
      echo `basename "$F"` >> $A/scripts
    ;;
    *text* )
      echo `basename "$F"` >> $A/texts
    ;;
    * )
      echo `basename "$F"` >> $A/unknown
    ;;
  esac
done
http://www.openstreetmap.org - mapy celého světa "wiki style"

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Re: Komplexni skript pro uklid adresaru
« Odpověď #2 kdy: 16 Srpna 2010, 14:27:59 »
V podstate to jde udelat pres mime-type, nejsem si vsak jistej jestli napriklad u *image* budou vsechny rozeznatelne, a pokud chces u archivu misto *.tar.gz vypisovat zpusobem : application/x-gzip (protoze nemuzes jit jenom pres application) tak ten seznam bude stejny a mozna i delsi.

Pravdu vsak mas v tom, ze za pouziti mime-type se urcite jednim argumentem nahradi mnozstvi dalsich (zejmena u image, video). Asi by to chtelo otestovat, zejmena ty formaty *image* . Chtelo by to kontrolu napr zde:http://www.w3schools.com/media/media_mimeref.asp, a pokud to sedi, tak to jde zjednodusit. Kouknu se na to a mozna to zjednodusim. Diky za napad  ;)
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Re: Komplexni skript pro uklid adresaru
« Odpověď #3 kdy: 16 Srpna 2010, 14:46:29 »
koukajic na specifikaci tak pokud by se u dokumentu, archivu a programu vytahoval sub-type a u multimedii jenom type tak to pres mime-type pujde urcite mnohem snaz
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: Komplexni skript pro uklid adresaru
« Odpověď #4 kdy: 16 Srpna 2010, 14:47:41 »
Na mých dokumentech image, audio a video fungovalo perfektně. Problémy byly jen s application.
Další výhodou MIME je to, že zkoumáme skutečný obsah souboru, ne (možná chybnou nebo neexistující) příponu.
http://www.openstreetmap.org - mapy celého světa "wiki style"

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Re: Komplexni skript pro uklid adresaru
« Odpověď #5 kdy: 16 Srpna 2010, 14:54:18 »
ano problem je jenom u application , koukajic zde: http://www.ltsw.se/knbase/internet/application.htp je potreba vytahnout sub-type
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Re: Komplexni skript pro uklid adresaru
« Odpověď #6 kdy: 16 Srpna 2010, 20:50:43 »
Zatim jsem reseni pres mime-type nenasel, script je vsak upravenej, je tam pridana take detekce souboru co maji v nazvu mezery, soubory .desktop jsou reseny jinym zpusobem nez puvodne.

Reseni pres gvfs, anebo ciste jenom pres find s atributem --mime by bylo fakt dobre pokud by se to u "applications" nepralo. Zpusob detekovani mime je asi urcite vhodnej pro beznyho uzivatele, co prijde do kontaktu s asi max 20 formatama, v jinym pripade spravny zatrizeni, pokud neni zpusob detekce sub-type asi pres mime nepujde
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: Komplexni skript pro uklid adresaru
« Odpověď #7 kdy: 16 Srpna 2010, 21:15:18 »
btw, neplanujes i nejake trideni podle nazvu odpovidajiciho regularnimu vyrazu?
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Re: Komplexni skript pro uklid adresaru
« Odpověď #8 kdy: 16 Srpna 2010, 22:57:52 »
btw, neplanujes i nejake trideni podle nazvu odpovidajiciho regularnimu vyrazu?

zajimava myslenka, mozna ze jo, take se pohravam s myslenkou, udelat to tak aby to hledalo take v pod-adresarich, vytahlo z nich vse a zatridilo
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: Komplexni skript pro uklid adresaru
« Odpověď #9 kdy: 17 Srpna 2010, 00:01:16 »
@petrakis:
sam uz delsi dobu premyslim o necem podobnem, puvodne me to napadlo pri objeveni KDE appletu "magic folder" (tridi soubory ktere se na nej pretahnou), s tim ze by to fungovalo jako daemon, ktery by skenoval adresar a presouval automaticky... nicmene vzhledem k pomalemu rozjezdu semantickeho desktopu mozna vsechny podobne veci ztrati v blizke budoucnosti smysl...

btw, imho bys mel osetrit, jestli soubor daneho jmena uz v cilovem adresari neexistuje, takhle muzes prijit o dulezita data, ani nemrknes...
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Re: Komplexni skript pro uklid adresaru
« Odpověď #10 kdy: 17 Srpna 2010, 14:06:51 »
zamezeni prepisovani souboru je spraveno, ve verzi 2.1 kontroluje jestli dany soubor existuje a jestli ano, nejdrive zmeni nazev pridanim "timestamp-u" do nazvu a az nasledne jej presune.

Ad "Magic Folder"  Vlastne svym zpusobem to funguje jako magic folder, akorat to delas manualne, spravit to vsak jako daemona, neni obtizne. Btw. nevim kdo s tim magic folderem byl prvni, kdysi davno jsem to videl u windowsu jako gadget.
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

petrakis

  • Stálý člen
  • **
  • Příspěvků: 513
Re: Komplexni skript pro uklid adresaru
« Odpověď #11 kdy: 19 Srpna 2010, 12:57:08 »
Do verze 2.2 jsem dal moznost jeste komplexnejsi organizace takze treba scripty uklidi zpusobem ze vytvori v adresari slozky podle koncovek a tam presune patricne soubory

vypada to asi takhle

Citace
for EXTENSIONS in ${i##*.}; do
if [ -d $progdir/$EXTENSIONS ]; then
echo "$EXTENSIONS found in $progdir, not created"
else
mkdir -p $progdir/$EXTENSIONS
fi

for FILES in $( ls -l | grep -v ^d ); do
EXTENSION=${FILES##*.}
q=$(date '+%Y-%m-%d_%H:%M_')
if [ -e $progdir/$EXTENSION/$FILES ];then
mv $FILES $q$FILES
mv $q$FILES $progdir/$EXTENSION/$q$FILES
else
mv $FILES $progdir/$EXTENSION/$FILES
fi
done
done

a vysledek je na screenshotu



[attachment deleted by admin]
Znalosti ⇛ Linux: Pokročilý ┃ Programování: Pokročilý ┃ Angličtina: Pokročilý
Systém: Ubuntu 10.04 32-bit (en_US.utf8)
Specifikace⇛ Intel Core 2 E8400 3.00GHz │ RAM 3072 MiB │ DG31PR INTEL - Intel DG31PR Grafické karty: nVidia NV44 [GeForce 6200 TurboCache(TM)] [10DE:161] Sítě: Ethernet: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10EC:8168]

Bum

  • Aktivní člen
  • *
  • Příspěvků: 373
Re: Komplexni skript pro uklid adresaru
« Odpověď #12 kdy: 17 Března 2011, 09:46:00 »
Hm. Asi som slabo chapajuci ale ako sa tento cleaner spusta?
./cmd_cleaner mi hodi toto

no option selected


jmp

  • Host
Re: Komplexni skript pro uklid adresaru
« Odpověď #13 kdy: 17 Března 2011, 10:05:12 »
hmm - asi ocekava nejaky parametr(y) a zadny nedostal...

pan Filuta

  • Aktivní člen
  • *
  • Příspěvků: 243
  • Tux, po třech milionech let v kosmu
Re: Komplexni skript pro uklid adresaru
« Odpověď #14 kdy: 17 Března 2011, 10:56:14 »
Bume, díky tvé neochotě věnovat řešení "problému" aspoň minutu jsem se dozvěděl o zajímavém skriptu. :)

"Návod k použití" je ta zvýrazněná část.

Citace
There are two options available, standard cleaning and advanced. Command for standard cleaning is as follow:
sh cmd_cleaner s /home/user/Downloads

for advanced only the letter "s" is changed to letter "a" like this:
sh cmd_cleaner a /home/user/Downloads

Bum

  • Aktivní člen
  • *
  • Příspěvků: 373
Re: Komplexni skript pro uklid adresaru
« Odpověď #15 kdy: 17 Března 2011, 12:47:19 »
Bume, díky tvé neochotě věnovat řešení "problému" aspoň minutu jsem se dozvěděl o zajímavém skriptu. :)

"Návod k použití" je ta zvýrazněná část.

Citace
There are two options available, standard cleaning and advanced. Command for standard cleaning is as follow:
sh cmd_cleaner s /home/user/Downloads

for advanced only the letter "s" is changed to letter "a" like this:
sh cmd_cleaner a /home/user/Downloads
Odpoved na prvu cast vety.
Tak to prrr. :) Venoval som tomu viac ako minutu skusal som v tom zadavat parametre ale zjavne zle. Zena ktora vie po Anglicky nebola prave doma a ja kedze neviem po Anglicky lachko prehliadnem veci. Ano to na tej stranke mi fakt uslo. Dik. Uz je to jasne.
Odpoved druha cast vety.
Neni za co. Mam cas tak tu beham po fore a hladam zaujimave skriptiky. :)

Tadeáš Pařík

  • Předseda občanského sdružení Ubuntu ČR a člen placené komunitní podpory
  • Příspěvků: 6543
    • Ubuntu.cz
Re: Komplexni skript pro uklid adresaru
« Odpověď #16 kdy: 19 Března 2011, 12:13:04 »
Pěkná práce, trošku jsem si to upravil pro své použití, ale jinak hezký  :)
Do života je třeba mít připravený rozum, nebo provaz.

Ubuntu 14.04 64 bit / Windows 10 Pro - Intel DH87MC, Intel Core i7-4771, 8GB Ram, Kingston HyperX 3K SSD 120GB, Intel HD 4600 a ASUS GTX660-DC2OCPH-2GD5
Ubuntu 14.04 64bit - HP ProBook 4525s
Ubuntu 14.10 32bit - ThinkPad R52 (testování)

pariktadeas@jabbim.cz

 

Provoz zaštiťuje spolek OpenAlt.