Como usar links de rede do Windows diretamente no nautilus

1

No ambiente misto de máquinas Linux e Windows, há muitos links compartilhados via mensagens instantâneas, e-mails, etc. Eles apontam para o mesmo local, mas eles têm formatos diferentes.

Por exemplo, o link do Windows \MACHINE\dir1\dir2\file.xyz é equivalente ao Linux ' smb://MACHINE/dir1/dir2/file.xyz .

Existe a possibilidade de traduzir os links do Windows de forma transparente no Nautilus e / ou shell?

    
por ts01 10.09.2015 / 16:15

2 respostas

1

Como você disse

% bl0ck_qu0te%

o caminho do shell:

  1. Usando awk

    awk -F'\' '{printf "smb:/"; for(i=2;i<=NF;i++){printf "/%s",$i}; printf "\n"}'<<< "\MACHINE\dir1\dir2\file.xyz"
    

    Saída:

    smb://MACHINE/dir1/dir2/file.xyz
    
  2. Ou via Perl

    perl -pe 'print "smb:/"; s/\/\//g' <<< "\MACHINE\dir1\dir2\file.xyz"
    

    Saída:

    smb://MACHINE/dir1/dir2/file.xyz
    
por A.B. 10.09.2015 / 16:22
0

Shorter awk

awk '{gsub(/\/,"/");print "smb:/" $0}'

Exemplo de saída:

$ printf "%s" '\MACHINE\dir1\dir2\file.xyz' | awk '{gsub(/\/,"/");print "smb:/" $0}'
smb://MACHINE/dir1/dir2/file.xyz

Java

Muito primitivo, use com cautela. Uso: java translatepath towin[tonix] "/path/to/file"["\path\to\file"]

public class translatepath
{
    public static void main(String[] args)
    {
        System.out.println(args[1]);
        if (args[0].contentEquals("tonix"))
            {
                System.out.println(toNixPath(args[1]));
            }
        else if (args[0].contentEquals("towin"))
            {
                System.out.println(toWinPath(args[1]));
            }
    }

    public static String toNixPath(String path)
    {
        return  path.replace("\","/");
    }
    public static String toWinPath(String path)
    {
        return path.replace("/","\");
    }
    
por Sergiy Kolodyazhnyy 10.09.2015 / 16:31