Skrót do przenoszenia pliku między katalogami (MacOS)

0

Czy są jakieś klawisze skrótów do przenoszenia folderów w górę lub w dół między folderami nadrzędnymi i podfolderami w MacOS?

np. W tym prostym przykładzie chcę przenieść plik 1234.pdf do folderu A, który pozostawiłby podfolder A pusty. Idealnie będę mógł to zrobić za pomocą samej klawiatury. Punkty bonusowe: Klawisz skrótu umożliwiający ponowne wybranie ostatnio wybranego podfolderu (dzięki czemu mogę usunąć, zmienić nazwę itp.).

- Folder A
   - Subfolder A
      -File 1234.pdf 
- Folder B
Gryph
źródło
1
Nie ma do tego wbudowanego skrótu, ale możesz tworzyć takie niestandardowe akcje na plikach za pomocą Alfreda. Alfred ma również wbudowane klawisze skrótów do wybierania bieżącego pliku i przenoszenia go do dowolnego folderu (przy użyciu dopasowywania rozmytego). Wymaga jednak Powerpack: alfredapp.com/powerpack
slhck
Spróbuj zapytać tutaj: apple.stackexchange.com
HackSlash
1
@slhck Nie trzeba używać Alfreda . Możesz utworzyć usługę Finder za pomocą skrótu klawiaturowego, który zrobi to za Ciebie.
CJK
1
@CJK Oczywiście, technicznie nie ma takiej potrzeby, to po prostu o wiele więcej pracy :)
slhck
1
@slhck Tak, jak się dowiedziałem. Zajęło mi wieki, aby napisać i przetestować skrypt w mojej odpowiedzi poniżej! 🙂
CJK,

Odpowiedzi:

2

Przepraszam za opóźnienie w otrzymaniu odpowiedzi. To było trudniejsze niż się spodziewałem.

Ale można osiągnąć to, co chcesz, tworząc usługę w Automatorze , która stanie się dostępna za pomocą skrótu klawiaturowego (skrótu).

Musisz postępować zgodnie z tym przewodnikiem na temat świadczenia usługi ogólnosystemowej .


Zacznij od utworzenia nowej usługi w Automatorze . Będzie musiał odebrać pliki lub foldery jako dane wejściowe i zostać udostępniony w Finderze .

Dodaj akcję Uruchom AppleScript do przepływu pracy. W obszarze tekstowym tej akcji można skopiować i wkleić następujący AppleScript:

    use Finder : application "Finder"

    property F_ : missing value -- The previous folder
    property f : missing value -- The files that we moved
    property home : Finder's home as alias


    on run {f, _}
      get its ParentFolderOf:(some item in f)
      set there to the result -- The destination folder, one level up

      -- We won't navigate any higher up the folder tree than
      -- the home folder
      if (its ParentFolderOf:home) is in there then return

      -- Also don't apply this service to other folders that aren't
      -- in the same branch of the folder tree as the home folder
      if (there as text) does not begin with (home as text) then return

      -- The folder we're currently at
      tell Finder to set F_ to ¬
        (the container of some item in f) as alias

      -- Check to ensure there are no files in the destination folder
      -- that risk being overwritten.  If there are, we won't move
      -- the files who share the same name, i.e. only move those that 
      -- are safe to move.
      tell Finder to ¬
        repeat with _g in f
          get name of _g
          set g to [there as text, result] as text
          if not (g exists) then set end of f to _g
          set f to the rest of f
        end repeat

      -- Move the files
      tell Finder ¬
        to set f ¬
        to (move f to there) ¬
        as list as alias list

      -- Reveal them
      reveal f
      activate Finder
    end run


    to ParentFolderOf:(f as alias)
      local f

      set F_ to [f, "::"] as text as alias

      if (f as text) ends with ":" then return F_

      return its ParentFolderOf:F_
    end ParentFolderOf:

Zapisz usługę, jak tylko chcesz. Automator automatycznie zapisuje go we właściwej lokalizacji ( ~ / Library / Services ). Uratowałem mój jako „Ascend in Finder” .

Następnie musisz utworzyć skrót klawiaturowy. Odbywa się to za pomocą Preferencji systemowych :

Skróty klawiszowe

Pod listą usług musisz przewinąć w dół do sekcji oznaczonej Pliki i foldery , pod którą powinna pojawić się nazwa Twojej usługi. Możesz zobaczyć moje wyróżnione. Utworzyłem skrót do mojego ( Ctrl + Up ).

Teraz za każdym razem, gdy wybieram pliki i / lub foldery w Finderze i naciskam , te pliki i foldery przechodzą o jeden poziom wyżej w hierarchii do ich folderu nadrzędnego. Jeśli chcę je przenieść z powrotem, mogę nacisnąć, Zaby cofnąć ruch.

Włożyłem zabezpieczenie, aby pliki i foldery nie były przenoszone wyżej w górę drzewa folderów niż folder domowy. W każdym razie jest mało prawdopodobne.

CJK
źródło
1

Jeśli pracujesz w widoku kolumny, możesz nawigować tylko za pomocą klawiszy strzałek.

Na przykład, zakładając, że zaczynasz od wybranego pliku ...

  • Cmd ⌘ C kopiować

  • Strzałka w lewo [wybierze podfolder A], więc dla punktów bonusowych ...

    • Enter ⌅ pozwoli Ci zmienić jego nazwę lub Cmd ⌘ Backspace ⌫ usunąć
      [Nie spowoduje to utraty pliku w buforze kopii]
  • Strzałka w lewo [spowoduje to wybranie folderu A] *

  • Cmd ⌘ Opt ⌥ V przenieść

To jest struktura, jak się wydaje na początku.

wprowadź opis zdjęcia tutaj

i znowu na końcu [po usunięciu podfolderu A w drodze]

wprowadź opis zdjęcia tutaj

* Ponieważ nigdzie nie wspomniano o tym w odpowiedzi, w tym momencie strzałka w dół wybrałaby folder B.

Tetsujin
źródło