Qualquer gerenciador de arquivos que possa XOR duas pastas base?

3

Estou configurando um novo laptop Win 10 com Ubuntu 16.04 em dual boot que possui uma pasta home e com WSL (Windows Subsystem para Linux) usando o Xubuntu que possui uma pasta pessoal.

Meu objetivo é quando inicializado com o Ubuntu eu quero poder alterar arquivos e tê-los refletidos no WSL ao mesmo tempo. Quando iniciei no Windows, quero que as alterações da WSL sejam refletidas no Ubuntu ao mesmo tempo.

No WSL, o Ubuntu será montado. No Ubuntu, o WSL será montado.

Eu tenho uma "fraca esperança" de que um gerenciador de arquivos possa mesclar virtualmente as duas pastas base, remover os nomes dos arquivos que são os mesmos e deixar os nomes dos arquivos / diretórios que estão em uma pasta home (e sub -diretórios), mas não o outro (XOR).

O motivo é:

  • Não quero duplicar os mesmos arquivos entre duas casas diferentes e sincronizá-los.
  • Alguns arquivos / documentos com o mesmo nome devem ser exclusivos para cada ambiente e nunca sincronizados. Um provável candidato seria ~/.conkyrc nunca deveria ser copiado entre ambientes, já que um usa o Kernel Linux e o outro usa o kernel NT para estatísticas de máquina.

Espero que o Xubuntu seja executado como um segundo desktop na WSL. Deve ser capaz de executar a maioria dos gerenciadores de arquivos. Eu estou esperando que eu não vou ter que cavar a fonte para XOR duas pastas de casa.

Acho que muito de /usr/local/bin estará apenas na partição do Ubuntu e nos links simbólicos criados a partir do WS.

Em uma nota similar, eu li uma vez que o mesmo nome de usuário não deve ser usado como um subdiretório em /home em partições diferentes. ou seja, ter dois /home/WinEunuuchs2Unix é desaprovado? E o Windows deve ser nomeado /home/WinEunuuchs2Unix2WSL por exemplo? Nomes reais seriam mais curtos, é claro.

XOR

Inicialmente houve alguma confusão na minha pergunta, então vou definir XOR da melhor maneira possível. É um comando Assembler (alguns insistem em chamá-lo de linguagem de montagem) que significa:

  

Em um, ou em outro, mas NÃO em ambos

Depois de entender este código de instruções, você verá como eu quero ser apresentado a uma lista de arquivos em meu diretório, além da lista de arquivos no mesmo diretório em uma partição DIFERENTE que NÃO existe na partição atual. então eu posso editar qualquer um dos arquivos simultaneamente e NÃO ter que sincronizá-los porque eles NÃO existem na partição atual em primeiro lugar.

Provavelmente é uma nova invenção no processamento de dados, por isso a minha pergunta é enganosa para a maioria das pessoas pelas quais peço desculpas. Ironicamente, por outro lado, XOR é provavelmente um dos mais antigos códigos de instruções de computador na Terra, datando do tubo de vácuo 1 = 1 bit de dias de memória que eu imagino.

    
por WinEunuuchs2Unix 19.10.2017 / 01:45

1 resposta

2

O que você está fazendo (tentando sincronizar uma WSL e uma verdadeira instalação do Ubuntu perfeitamente) é muito perigoso e não deve ser tomada de ânimo leve, se for possível. Diferenças de configuração / sistema entre os dois SOs podem causar problemas enormes dependendo de como as coisas acontecem. Veja aqui para o que acontece quando as pessoas fazem coisas semelhantes com o VirtualBox.

Apenas coisas piores podem acontecer com o WSL, e isso só será exagerado ao tentar sincronizar todos os arquivos, exceto os de uma lista negra. Você está essencialmente pedindo problemas aqui.

Dito isso, o que você deseja fazer (mesclar pastas sem sobrescrever arquivos existentes) é extremamente simples e já é suportado por praticamente todos os principais gerenciadores de arquivos (e pelo prompt de comando).

Observe que isso não funcionará automaticamente. Você terá que acioná-los manualmente, embora você possa usar algum abuso criativo para torná-lo semiautomático. Observe que todas as advertências anteriores serão aplicadas.

O antigo cp pode fazer isso com a opção -n :

┌─[16:57:35]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % tree
.
├── folder-a
│   ├── a
│   ├── b
│   └── d
└── folder-b
    ├── a
    ├── c
    ├── e
    └── k
        └── j

3 directories, 7 files
┌─[16:57:41]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cat folder-a/a
Hello World A
┌─[16:57:43]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cat folder-b/a
Hello World B
┌─[16:57:54]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cp -nR folder-a/* folder-b/
┌─[16:58:00]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cp -nR folder-b/* folder-a/
┌─[16:58:03]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % tree
.
├── folder-a
│   ├── a
│   ├── b
│   ├── c
│   ├── d
│   ├── e
│   └── k
│       └── j
└── folder-b
    ├── a
    ├── b
    ├── c
    ├── d
    ├── e
    └── k
        └── j

4 directories, 12 files
┌─[16:58:07]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cat folder-a/a
Hello World A
┌─[16:58:09]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cat folder-b/a
Hello World B

Como alternativa, se você quiser usar a GUI, isso também pode ser feito com o Nautilus antigo. Basta arrastar e soltar o conteúdo de um para o outro e você verá esse aviso no primeiro arquivo conflitante. Basta clicar em Aplicar esta ação a todos os arquivos e, em seguida, Ignorar :

┌─[17:01:33]─[kazwolfe@firewolf]
└──> /tmp/xor-gui % cat folder-a/a
Hello World A
┌─[17:01:34]─[kazwolfe@firewolf]
└──> /tmp/xor-gui % cat folder-b/a
Hello World B

Se você quiser experimentar um pouco (na verdade, muito), talvez seja possível abusar de algo como aufs ou OverlayFS. Efetivamente, você configuraria seu sistema de arquivos "base" para o sistema de arquivos comum (provavelmente será sua raiz do Ubuntu). Então, você teria uma segunda camada contendo apenas alterações de WSL. A camada somente de WSL deve ser somente leitura e tudo o mais passará para o sistema de arquivos base. Claro, isso é tudo teórico e você terá que fazer muita pesquisa para ver se algo assim é possível.

Se você quiser apenas pastas "principais" sincronizadas entre sistemas operacionais (por exemplo, Documents , Music , Desktop , etc.), basta criar um link simbólico de um para o outro. Minha configuração antiga do Ubuntu de volta quando eu tinha dual-boot tinha minha pasta ~/Documents vinculada ao equivalente Windows. Isso pode ser feito, é claro, com algo como ln -s . Note que você pode precisar se preocupar um pouco com permissões em montagens ou usando montagens de ligação.

    
por Kaz Wolfe 19.10.2017 / 02:01