Proste rozwiązanie problemu bałaganu w pobranych plikach (~/Downloads
) bez używania jakichkolwiek dodatkowych rozwiązań ponad to, co jest już w systemie – wspomagając się jedynie Automatorem i PHP.
Krok pierwszy – krótki skrypt PHP porządkujący pliki według dat pobrania:
(aktualizacja: 29 listopada 2014)
<?php
$args = explode("\n", trim(file_get_contents('php://stdin')));
foreach ($args as $i => $name)
{
$bname = basename($name);
if ((is_dir($name) && (preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/', $bname) || preg_match('/^_.+?$/', $bname))) ||
preg_match('/^\..+?$/', $bname) ||
preg_match('/^.+?\.(part|download)$/', $bname))
continue;
if (filectime($name) > 0)
{
$date = date('Y-m-d', filectime($name));
if (!file_exists(dirname($name) . '/' . $date))
mkdir(dirname($name) . '/' . $date, 0777, true);
rename($name, dirname($name) . '/' . $date . '/' . $bname);
}
}
Code language: PHP (php)
Krok drugi – utworzenie „Czynności katalogu” w Automatorze i podpięcie pod nią wykonania powyższego skryptu.
Ważne, aby konfiguracja czynności wyglądała tak jak na obrazku powyżej. W miejsce /sciezka/do/skryptu.php
należy oczywiście podstawić odpowiednią lokalizację swojego pliku PHP ze skryptem. Po ścieżce nie musi być $@
(mimo tego, że jest na zrzucie ekranu) a dane wejściowe powinny być skonfigurowane jako „do stdin”.
Co istotne, mechanizm ten działa z dowolnym oprogramowaniem które umieszcza pobrane pliki w wybranym w Automatorze katalogu.
Leave a Reply