Domyślnym katalogiem na pobieranie plików w moich przeglądarkach, jest pulpit. Stamtąd rozdzielam pliki wedle własnego widzi mi się, jednak pewną klasę plików, życzę sobie mieć zawsze w pewnym specyficznym katalogu. Do tej pory, przenosiłem je tam ręcznie, ale uświadomiłem sobie, że przecież nie jest trudno proces ten zautomatyzować. Po pięciu minutach powstała ta oto linijka:
" = "" ] && cp "$1" ""
Ten skrypt oczywiście wykorzystuje do otwierania pliku z poziomu przeglądarki. Najwięcej problemu było ze sprawdzeniem poprawności zadanego parametru ($1
). Należało jednak upewnić się, czy parametr jest plikiem (to z pomocą: -f
) i czy ma zadane rozszerzenie. Zamieszczam, aby mi się nie zgubiło. Na co warto zwrócić uwagę:
${1##*.}
– to wyrażenie zwraca rozszerzenie pliku (tutaj dla zmiennej$1
). Dla nazwy np. „nazwa.z.kropkami.txt”, zwróci „txt”. Po sieci można znaleźć wersje z jednym płotkiem (#
), ale wtedy wynikiem są wszystkie znaki po pierwszej kropce (szczegóły w załączonych linkach)[ (...) -a (...) ]
– I (ang. AND) w składni programutest
, używanego przy warunkach w Bashu
Z pomocą: bash String Manipulations i Linux tip: Bash test and comparison functions.
Nie w bashu, tylko po prostu taka jest składnia polecenia test (a.k.a.
[ ... ]
). (Choć wieść gminna niesie, że jest to mniej przenośne).Rozszerzenie, można też ładnie sprawdzać używając
case
:PolubieniePolubienie
Wiem, ale jakoś tak to zostawiłem. Może być teraz?
Bardzo ładnie.
PolubieniePolubienie
Do zabawy w rozdzielanie plików po folderach polecam incron, z pomocą man -a incrontab. Pozdro!
PolubieniePolubienie
Ziroux, możesz rozwinąć temat, bo jakoś nie widzę jak narzędzie do manipulowania tablicami crona może tutaj pomóc.
PolubieniePolubienie
Sigvatr, więc nie cron, a incron – czyli inotify cron. Zawiera instrukcje dla demona incrond typu: wykonaj „to” w przypadku „takiego” zdarzenia systemu plików. W przypadku pobierania plików może Ci się przydać zdarzenie INCLOSEWRITE. Np:
/home/sigvatr/Desktop INCLOSEWRITE /jakis/skrypt $#. Wtedy obojętne czym pobierasz; ważne, że zapisujesz na pulpicie a skryptem kontrolujesz co gdzie trafia. O reszcie zastosowań i funkcjonalności przeczytasz w manualu i w internecie (incron|incrontab|inotify).
PolubieniePolubienie
Tak, teraz rozumiem.
Przy okazji, a jeden z moich wykładowców kiedyś narzekał, że nie ma podobnych mechanizmów w linuksowych systemach plików (w przeciwieństwie do windowsowych).
PolubieniePolubienie