Quer manter o OneDrive sincronizado no Ubuntu sem baixar a pasta Documents/Videos
(≈31 GB)? Veja como filtrar a sincronização com skipdir
ou synclist
e manter tudo atualizado automaticamente via --monitor
ou um serviço systemd de utilizador — com segurança e sem comandos repetitivos.
Visão geral: problema e solução
Problema: você quer que o OneDrive no Ubuntu não baixe a pasta grande Documents/Videos
, mas continue sincronizando todo o resto.
Solução: o cliente “OneDrive Client for Linux” (projeto comunitário) possui filtros nativos no lado do cliente. Você controla o que baixar/ignorar via:
skip_dir
— ignora pastas;skip_file
— ignora ficheiros/arquivos por padrão/padrão (glob);sync_list
— lista de inclusão (apenas o que está nela será sincronizado).
Para o caso “excluir apenas Documents/Videos
”, o caminho mais simples e robusto é configurar skip_dir
e fazer uma ressincronização.
Resumo rápido (para ir direto ao ponto)
- Edite
~/.config/onedrive/config
e adicione:skip_dir = "Documents/Videos" skipdirstrict_match = true
- Reaplique as regras com ressincronização:
onedrive --resync --sync
- Automatize:
- No terminal:
onedrive --monitor
- Como serviço de utilizador:
systemctl --user enable onedrive systemctl --user start onedrive systemctl --user status onedrive
- No terminal:
Instalação e pré‑requisitos
O cliente costuma estar nos repositórios atuais das principais distros. No Ubuntu, experimente:
sudo apt update
sudo apt install onedrive
Verifique a versão:
onedrive --version
No primeiro arranque (por exemplo, com onedrive --synchronize
ou onedrive --sync
), será solicitado o login/consentimento Microsoft. Siga as instruções no terminal (fluxo de autenticação por navegador ou código de dispositivo).
Configurar o filtro para ignorar Documents/Videos
(método recomendado)
Os filtros residem no ficheiro de configuração por utilizador:
mkdir -p ~/.config/onedrive
nano ~/.config/onedrive/config
Adicione as linhas abaixo (adequadas ao seu caso):
# Ignorar a pasta grande situada na sua raiz do OneDrive
skip_dir = "Documents/Videos"
Opcional: exige correspondência exata do caminho, evitando falsos positivos
skip\dir\strict\_match = true
Importante: caminhos em skip_dir
são relativos à raiz remota do seu OneDrive (não ao diretório local). Se no OneDrive você tem “Documents/Videos
”, é exatamente isso que deve declarar.
Aplicar as novas regras (ressincronização)
Sempre que você altera skipdir
, skipfile
ou cria/edita um sync_list
, é necessário executar uma ressincronização completa para que o cliente recalcule o estado:
onedrive --dry-run --resync --sync # simulação segura
onedrive --resync --sync # execução efetiva
Use --dry-run
antes para ver o que aconteceria (adições, eliminações, downloads) sem alterar nada.
Como confirmar que a exclusão está ativa
- Mostre a configuração efetiva:
onedrive --display-config | sed -n '/skipdir/p;/skipdirstrictmatch/p'
- Faça um dry‑run:
onedrive --dry-run --resync --sync | grep -i videos || echo "OK: nada com 'Videos' será baixado"
Alternativa: sync_list
(lista de inclusão)
Se pretende manter no Ubuntu apenas um subconjunto pequeno e controlado do seu OneDrive, use um sync_list
. Crie o ficheiro abaixo e liste, uma por linha, as pastas/ficheiros a incluir:
nano ~/.config/onedrive/sync_list
Exemplo de conteúdo do sync_list
:
Documents/Projetos
Pictures
Notas.md
Depois disso, ressincronize:
onedrive --dry-run --resync --sync
onedrive --resync --sync
Observação: quando existe synclist
, o cliente passa a sincronizar somente os itens listados. Para muitos casos, skipdir
é mais prático (mantém tudo, exceto o que for excluído).
Por que evitar --single-directory
neste cenário
--single-directory "<pasta>"
sincroniza uma única pasta por execução. Isso significa repetir o comando para cada pasta desejada e lembrar de novas pastas que surgirem. Os filtros de configuração (skipdir
ou synclist
) resolvem o problema de forma permanente e sem microgestão.
Tabela de decisão: qual filtro usar?
Opção | O que faz | Quando usar | Exemplo |
---|---|---|---|
skip_dir | Ignora pastas específicas na nuvem. | Exclusão pontual de um diretório grande (Documents/Videos ). | skip_dir = "Documents/Videos" |
skipdirstrict_match | Exige correspondência exata do caminho. | Evitar que Videos em outras árvores seja ignorado por engano. | skipdirstrict_match = true |
skip_file | Ignora ficheiros por padrão (glob). | Excluir temporários, caches, *.iso , etc. | skip_file = ".tmp|.iso" |
sync_list | Lista de inclusão: sincroniza somente o que estiver listado. | Quando o conjunto desejado é pequeno e controlado. | ~/.config/onedrive/sync_list com entradas linha a linha |
Sincronização automática (sem comandos manuais)
Opção A — --monitor
no terminal
Para manter o OneDrive atualizado em tempo real, rode:
onedrive --monitor
Esse modo observa alterações locais (via inotify) e sincroniza periodicamente com a nuvem. Deixe a janela aberta (ou use um multiplexador como tmux/screen).
Opção B — Serviço systemd de utilizador
A maioria dos pacotes já instala uma user unit. Tente:
systemctl --user enable onedrive
systemctl --user start onedrive
systemctl --user status onedrive
Se a unidade não existir no seu pacote, crie uma unit de utilizador simples para iniciar o monitor ao fazer login:
# ~/.config/systemd/user/onedrive.service
[Unit]
Description=OneDrive Sync (user) - monitor
After=network-online.target
\[Service]
ExecStart=/usr/bin/onedrive --monitor
Restart=on-failure
RestartSec=10
\[Install]
WantedBy=default.target
Ative e inicie:
systemctl --user daemon-reload
systemctl --user enable --now onedrive
Dica: se quiser que a sincronização continue mesmo sem sessão gráfica aberta (em servidores, por exemplo), habilite o linger para o seu utilizador:
sudo loginctl enable-linger "$USER"
Dicas práticas para uso diário
- Ver a configuração ativa:
onedrive --display-config
- Testar antes:
onedrive --dry-run --resync --sync
- Comando moderno: prefira
--sync
no lugar de--synchronize
. - Mais verbosidade:
onedrive --sync --verbose
ajuda a entender o que será baixado/enviado. - Local de trabalho: verifique/ajuste
sync_dir
no ficheiroconfig
para definir a pasta local do OneDrive.
Avançado: múltiplos perfis, diretório local e modos de operação
Múltiplas contas ou perfis independentes
Você pode manter configurações isoladas (por exemplo, pessoal e trabalho) usando diretórios de configuração separados com --confdir
:
# Perfil pessoal (padrão)
onedrive --sync
Perfil da empresa
mkdir -p ~/.config/onedrive-company
onedrive --confdir ~/.config/onedrive-company --sync
Para automatizar um segundo perfil via systemd (utilizador), crie outra unit:
# ~/.config/systemd/user/onedrive-company.service
[Unit]
Description=OneDrive Company (user) - monitor
After=network-online.target
\[Service]
ExecStart=/usr/bin/onedrive --monitor --confdir=%h/.config/onedrive-company
Restart=on-failure
RestartSec=10
\[Install]
WantedBy=default.target
Escolher onde ficam os ficheiros locais
Defina sync_dir
no ~/.config/onedrive/config
para alterar a pasta local do OneDrive (útil para discos secundários/externos):
sync_dir = "/mnt/dados/OneDrive"</code></pre>
<p>Se mudar o <code>sync_dir</code> depois de já ter sincronizado, faça <code>--resync</code>.</p>
<h3>Modos úteis</h3>
<ul>
<li><code>--download-only</code>: baixa da nuvem para o Ubuntu, sem enviar alterações locais.</li>
<li><code>--upload-only</code>: envia do Ubuntu para a nuvem, sem baixar novidades.</li>
<li><code>--no-remote-delete</code>: impede que eliminações locais removam ficheiros na nuvem.</li>
</ul>
<h2>Boas práticas de filtragem</h2>
<ul>
<li><strong>Caminhos são remotos</strong>: <code>skipdir</code> e <code>synclist</code> usam o caminho dentro do <em>OneDrive</em>. Não use caminhos do seu sistema local.</li>
<li><strong>Correspondência exata</strong>: ao excluir uma pasta com nome comum (<code>Videos</code>), ative <code>skipdirstrict_match = true</code> para evitar exclusões por engano noutras árvores.</li>
<li><strong>Evite listas infinitas</strong>: se precisar excluir dezenas de pastas, reavalie se um <code>sync_list</code> (lista de inclusão) não seria mais simples.</li>
<li><strong>Documente-se no próprio <code>config</code></strong>: comente suas regras (começando linhas com <code>#</code>) para lembrar os motivos das exclusões.</li>
<li><strong>Teste com <code>--dry-run</code></strong> sempre que mudar regras.</li>
</ul>
<h2>FAQ — dúvidas comuns</h2>
<details>
<summary>Posso excluir várias pastas de uma vez?</summary>
<div>
<p>Sim. Você pode combinar padrões de exclusão em <code>skipdir</code> (por exemplo, usando padrões/globs) ou optar por um <code>synclist</code> para controlar exatamente o conjunto que deseja manter. Teste com <code>--dry-run</code> para validar.</p>
</div>
</details>
<details>
<summary>O que acontece se eu já baixei a pasta que agora quero excluir?</summary>
<div>
<p>Ao aplicar <code>skip_dir</code> e executar <code>--resync --sync</code>, o cliente recalcula o estado. Se a pasta passar a ser excluída, o cliente deixará de gerir esses ficheiros localmente; use <code>--dry-run</code> para verificar o impacto antes.</p>
</div>
</details>
<details>
<summary>Posso usar <code>skipdir</code> e <code>synclist</code> juntos?</summary>
<div>
<p>Para simplificar, escolha um <em>ou</em> outro. O <code>synclist</code> normalmente <em>assume o controle</em> da seleção (apenas o que está na lista é sincronizado). Para “excluir uma pasta específica e manter o resto”, use <code>skipdir</code>.</p>
</div>
</details>
<details>
<summary>Como ver por que um ficheiro foi ignorado?</summary>
<div>
<p>Rode com <code>--verbose</code> e, se necessário, <code>--dry-run</code>. O cliente mostra as decisões (sincronizar/ignorar) com o motivo.</p>
</div>
</details>
<h2>Resolução de problemas</h2>
<ul>
<li><strong>“Nada sincroniza” logo após mudar filtros</strong>: faltou <code>--resync</code>. Execute <code>onedrive --resync --sync</code>.</li>
<li><strong>Mudanças remotas demoram a chegar</strong>: confirme se está rodando <code>--monitor</code> ou se o serviço systemd está ativo (<code>systemctl --user status onedrive</code>).</li>
<li><strong>Muitos ficheiros “pulados”</strong>: verifique padrões agressivos em <code>skipfile</code> e paths em <code>skipdir</code>; use <code>--display-config</code> e revise o <code>config</code>.</li>
<li><strong>Erros de permissão no <code>syncdir</code></strong>: corrija dono e permissões (ex.: <code>sudo chown -R "$USER":"$USER" /caminho/do/syncdir</code>).</li>
<li><strong>Monitoramento não detecta mudanças</strong>: confirme limites de <code>inotify</code> se lida com muitas pastas. Ajuste temporariamente com:
<pre><code class="language-bash"># Exemplo: aumentar observadores para 524288
echo fs.inotify.maxuserwatches=524288 | sudo tee /etc/sysctl.d/99-inotify.conf
sudo sysctl --system
Checklist final
- Exclusão configurada:
skipdir = "Documents/Videos"
(+skipdirstrictmatch = true
). - Aplicação das regras:
onedrive --resync --sync
(teste antes com--dry-run
). - Automação ativa:
onedrive --monitor
ou serviço systemd de utilizador. - Verificação:
onedrive --display-config
esystemctl --user status onedrive
.
Conclusão
Para excluir a pasta Documents/Videos
da sincronização no Ubuntu, a forma mais direta é usar skipdir
no ficheiro de configuração do cliente OneDrive e aplicar uma ressincronização. Se precisar de controle total, utilize um synclist
. Para não depender de comandos manuais, rode em modo --monitor
ou habilite o serviço systemd de utilizador. Com essas práticas, você mantém o OneDrive enxuto no Ubuntu, economiza espaço e garante que as mudanças do Windows cheguem automaticamente ao seu sistema Linux.