Como iniciar operações de arquivo do Nautilus a partir da linha de comando?


19

Como iniciar a GUI "Operações de arquivo" do Nautilus na linha de comando?

Operações de arquivo

Meu objetivo é incluir isso em um script do Nautilus.


2
Não sei se entendi o propósito / ponto.
RolandiXor

por que você não usa o comando 'cp' no bash? se você deseja visualizar uma transferência, pode usar a barra de progresso do zenity. algo como 'zenity --progress --text = "Transferindo arquivos .." --title = "Transferência iniciada"' funcionaria. para obter mais informações sobre o zenity, consulte a página de manual e os links: ubuntuforums.org/archive/index.php/t-306515.html ubuntuforums.org/archive/index.php/t-183228.html library.gnome.org/users/ zenity / stable /…
gourgi

@gourgi Desejo que ele se integre ao indicador de progresso de todas as transferências que já possam ter sido iniciadas pelo Nautilus.
25411

Respostas:


7

A resposta curta é: você não pode. O Nautilus não foi criado para permitir esse tipo de coisa e você pode acessar o código-fonte do nautilus e consultar as seções de copiar / mover arquivos para ver como ele funciona.

Parte dessa falta de integração foi a motivação por trás do design do indicador de progresso. Substituiria a janela de progresso do nautilus e várias outras inconsistências de progresso e permitiria que vários programas mostrassem seu progresso ao usuário da mesma maneira:

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

Mais trabalho e advocacia para esses novos designs ajudariam, permitindo a integração de todos os tipos de ferramentas.


3

De uma discussão em irc: //irc.gnome.org#nautilus, posso dizer que a versão atual do Nautilus não expõe métodos para operação de arquivos no D-Bus, mas a versão 3.0 o fará, portanto, a resposta deve ser

você não pode, agora, mas você irá no futuro


2

Aparentemente, isso agora é suportado; pelo menos o seguinte parece funcionar sob 12.04:

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

onde /source/directoryé o caminho absoluto para o diretório de origem, *é o globo para o (s) arquivo (s) para copiar, /destination/directoryé o diretório de destino e o último ""é para o nome do arquivo de destino. Observe que você precisa ter o último lá, mesmo que esteja vazio como aqui, para cumprir a assinatura do método. Além disso, se você especificar um nome de destino e tiver vários arquivos de origem, todos eles serão copiados para esse arquivo de destino, fornecendo um prompt de substituição para cada arquivo após o primeiro (que pode ou não ser o que você deseja).


A resposta de Jani Uusitalo funciona no nautilus 3.4.2, Ubuntu 12.10
totti 31/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.