Как использовать сетевые каналы окон непосредственно в наутилусе

В комбинированной среде машин Linux и Windows существует много ссылок, поделившихся через IM, электронные письма и т.д. Они указывают на то же местоположение, но у них есть различные форматы.

Например, ссылка Windows \\MACHINE\dir1\dir2\file.xyz эквивалентно Linux' smb://MACHINE/dir1/dir2/file.xyz.

Существует ли возможность перевести ссылки Windows прозрачно в Наутилусе или/и оболочке?

1
задан 10 September 2018 в 10:51

2 ответа

Поскольку Вы сказали

в Наутилусе или / и оболочка?

оболочка путь:

  1. Используя awk

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

    Вывод:

    smb://MACHINE/dir1/dir2/file.xyz
    
  2. Или через Вывод Perl

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

    :

    smb://MACHINE/dir1/dir2/file.xyz
    
1
ответ дан 7 December 2019 в 16:10

Короче awk

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

Демонстрационный вывод:

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

Java

Очень примитивный, используйте с осторожностью. Использование: 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("/","\\");
    }
0
ответ дан 7 December 2019 в 16:10

Другие вопросы по тегам:

Похожие вопросы: