Mastodon

Mój Alfred – kopiowanie nazwy pliku lub folderu

2
Dodane: 11 lat temu

W poprzednich częściach pokazałem Wam, jak za pomocą Alfreda obliczyć VAT oraz stworzyć nowy dokument w aplikacji Byword. Teraz czas na kolejny workflow, który skopiuje nazwę zaznaczonego pliku (bez rozszerzenia) lub folderu.

Gazetka, o której pisałem Wam przy okazji przepisu na liczenie VAT, składa się z wielu produktów, które uporządkowałem przez przechowywanie ich w folderach nazwanych dokładnie tak jak poszczególne moduły. Dzięki jednemu z narzędzi Alfreda – File Search (któremu poświęciłem cały odcinek screencastu z serii o Alfredzie) – mogę bardzo szybko odnaleźć potrzebne produkty. Normalnie po znalezieniu folderu z produktami w Alfredzie przechodziłem do Findera, edytowałem nazwę katalogu, żeby ją skopiować. Ale postanowiłem uprościć ten proces za pomocą nowego workflow.

Kopiowanie nazwy pliku lub folderu

Jak to działa?

  • Wywołuję Alfreda,
  • wyszukuję konkretny katalog z produktami,
  • wciskam skrót klawiszowy wywołujący akcję, która kopiuje nazwę folderu.

Tradycyjnie już zapraszam do wnikliwego poznania tej akcji.

Wejście

Istnieją dwie metody, by wywołać mój workflow. Pierwsza za pomocą skrótu klawiszowego, który pobiera wartość zaznaczenia. Działa on z każdą graficzną aplikacji wyświetlającą strukturę plików lub w oknie Alfreda. Drugą metodą jest skorzustanie z File Action, czyli akcji wywołanej na plikach w przeglądarce Alfreda (o której możecie się dowiedzieć więcej z wcześniej wspomnianego drugiego odcinka screencastu). Oba sposoby działają niestety (lub stety, zależy jak na to spojrzeć) na pojedynczych plikach/folderach.

Akcja

Kiedy już wartość zaznaczonego pliku/folderu (którą jest po prostu ścieżka do niego) zostanie pobrana, zostaje na niej wykonany poniższy skrypt:

fullpath="{query}"

filename=$(basename "$fullpath")
filename=${filename%.*}

echo -n $filename

  • fullpath="{query}" – przypisuje pobraną wartość do zmiennej $fullpath.
  • filename=$(basename "$fullpath") – pod zmienną $filename przypisałem wynik polecenia basename "$fullpath", które „wyciąga” nazwę. W przypadku folderów to mógłby być w zasadzie koniec, ale jeśli chodzi o plik, otrzymałbym jego nazwę z rozszerzeniem. Aby pozbyć się tego ostatniego, posłużyłem się więc jeszcze jednym poleceniem:
  • filename=${filename%.*} – nadpisuje ono zmienną $filename „czyszcząc” z niej rozszerzenie.
  • echo -n $filename – tradycyjnie na sam koniec przygotowujemy zmienną do wyjścia.

Wyjście

Końcowym krokiem jest skopiowanie otrzymanego wyniku (zapisanego w postaci {query}) do schowka. Stamtąd mogę nazwę wkleić w dowolnym miejscu.


Workflow kopiujący nazwę jest bardzo prosty, ale jak zaznaczyłem, działa tylko z pojedynczymi plikami. Być może ktoś chciałby mieć możliwość skopiowania kilku nazw zaznaczonych plików? W takim razie proszę Was o pomoc w rozwiązaniu tego problemu.

Nazwa: Kopiuj nazwę
Pobieranie: link

Wszystkie artykuły z serii Mój Alfred
możecie znaleźć pod tym linkiem.

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, Redaktor iMagazine.pl. Mastodon: mcskrzypczak@c.im

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 2

Pytanie za sto punktów: Czy Alfred posiada skrypt umożliwiający synchronizację plików między dwoma folderami, z których jeden jest w iCloud a drugi na dysku komputera?
Czy muszę ingerować w systemowy Automator?