Jak zainicjować operacje na plikach Nautilus z wiersza poleceń?

19

Jak uruchomić GUI Nautilusa „Operacje na plikach” z wiersza poleceń?

Operacje na plikach

Moim celem jest zawarcie tego w skrypcie Nautilus.

ændrük
źródło
2
Nie jestem pewien, czy rozumiem cel / punkt.
RolandiXor
dlaczego po prostu nie użyjesz polecenia „cp” w bash? jeśli chcesz wizualizować transfer, możesz użyć paska postępu zenity. coś takiego jak „zenity --progress --text =" Przesyłanie plików .. "--title =" Transfer rozpoczęty "'działałoby. więcej informacji na temat zenity znajduje się na stronie man i linkach: ubuntuforums.org/archive/index.php/t-306515.html ubuntuforums.org/archive/index.php/t-183228.html library.gnome.org/users/ zenity / stable /…
gourgi
@gourgi Chcę, aby integrowała się ze wskaźnikiem postępu dla wszelkich transferów, które mogłem już rozpocząć za pośrednictwem Nautilus.
ændrük

Odpowiedzi:

7

Krótka odpowiedź brzmi: nie możesz. Nautilus nie jest zbudowany, aby pozwalać na tego typu rzeczy. Możesz przejść przez kod źródłowy nautilus i spojrzeć na sekcje kopiowania / przenoszenia plików, aby zobaczyć, jak to działa.

Częścią tego braku integracji była motywacja do opracowania wskaźnika postępu. Zastąpiłoby to okno postępu nautilusa i kilka innych niespójności postępu i pozwoliłoby wielu programom pokazywać swoje postępy użytkownikowi w ten sam sposób:

https://wiki.ubuntu.com/Ayatana/ProgressIndication

Przydałoby się więcej pracy i wsparcia dla tych nowych projektów, umożliwiając integrację wszelkiego rodzaju narzędzi.

Martin Owens -doctormo-
źródło
3

Z dyskusji w irc: //irc.gnome.org#nautilus mogę powiedzieć, że obecna wersja Nautilus nie ujawnia metod działania na plikach w D-Bus, ale zrobi to wersja 3.0, więc odpowiedź powinna brzmieć

nie możesz teraz, ale zrobisz to w przyszłości

enzotib
źródło
2

Najwyraźniej jest to teraz obsługiwane; przynajmniej 12 wydaje się działać pod 12.04:

qdbus org.gnome.Nautilus /org/gnome/Nautilus org.gnome.Nautilus.FileOperations.CopyFile "file:///source/directory" "*" "file:///destination/directory" ""

gdzie /source/directoryjest bezwzględną ścieżką do katalogu źródłowego, *to glob pliku (plików) do skopiowania, /destination/directoryto katalog docelowy, a ostatni ""to nazwa pliku docelowego. Pamiętaj, że musisz mieć tam ostatni, nawet jeśli jest pusty, jak tutaj, aby wypełnić podpis metody. Ponadto, jeśli podasz nazwę docelową i będziesz mieć wiele plików źródłowych, wszystkie zostaną skopiowane do tego jednego pliku docelowego, dając monit o zastąpienie każdego pliku po pierwszym (który może, ale nie musi być tym, czego chcesz).

Jani Uusitalo
źródło
Odpowiedź Jani Uusitalo działa na nautilus 3.4.2, Ubuntu 12.10
totti