Как я могу начать файловые операции Nautilus из командной строки?

19

Как запустить графический интерфейс «Файловые операции» Nautilus из командной строки?

Файловые операции

Моя цель - включить это в скрипт Nautilus.

ændrük
источник
2
Я не уверен, что понимаю цель / пункт.
RolandiXor
почему вы просто не используете команду "cp" в bash? если вы хотите визуализировать передачу, вы можете использовать индикатор прогресса zenity. что-то вроде 'zenity --progress --text = "Передача файлов .." --title = "Передача началась"' будет работать. Для получения дополнительной информации о Zenity взглянуть на страницы руководства и ссылки: ubuntuforums.org/archive/index.php/t-306515.html ubuntuforums.org/archive/index.php/t-183228.html library.gnome.org/users/ zenity / stable /…
gourgi
@gourgi Я хочу, чтобы он интегрировался с индикатором прогресса для любых переводов, которые я, возможно, уже начал через Nautilus.
rndrük

Ответы:

7

Короткий ответ: ты не можешь. Nautilus не предназначен для такого рода вещей, и вы можете просмотреть исходный код nautilus и посмотреть разделы копирования / перемещения файлов, чтобы увидеть, как он работает.

Частично это отсутствие интеграции послужило мотивацией для разработки индикаторов прогресса. Он заменит окно прогресса nautilus и некоторые другие несоответствия хода выполнения и позволит нескольким программам одинаково показывать пользователю свой прогресс:

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

Помогло бы больше работы и пропаганды этих новых конструкций, позволяющих интегрировать все виды инструментов.

Мартин Оуэнс -доктормо-
источник
3

Из обсуждения в irc: //irc.gnome.org#nautilus я могу сказать, что текущая версия Nautilus не предоставляет методов для работы с файлами на D-Bus, но версия 3.0 подойдет, поэтому ответ должен быть

Вы не можете, сейчас, но вы будете в будущем

enzotib
источник
2

По-видимому, теперь это поддерживается; по крайней мере, следующее работает в 12.04:

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

где /source/directory- абсолютный путь к исходному каталогу, *глобус для файла [s], который нужно скопировать, /destination/directory- целевой каталог, а последний ""- для имени файла назначения. Обратите внимание, что вам нужно иметь последний там, даже если он пуст, как здесь, чтобы выполнить сигнатуру метода. Кроме того, если вы укажете целевое имя и у вас будет несколько исходных файлов, все они будут скопированы в этот один конечный файл, давая подсказку перезаписи для каждого файла после первого (который может или не может быть тем, что вы хотите).

Яни Ууситало
источник
Ответ Яни Ууситало работает на nautilus 3.4.2, Ubuntu 12.10
до