В комбинированной среде машин Linux и Windows существует много ссылок, поделившихся через IM, электронные письма и т.д. Они указывают на то же местоположение, но у них есть различные форматы.
Например, ссылка Windows \\MACHINE\dir1\dir2\file.xyz
эквивалентно Linux' smb://MACHINE/dir1/dir2/file.xyz
.
Существует ли возможность перевести ссылки Windows прозрачно в Наутилусе или/и оболочке?
Поскольку Вы сказали
в Наутилусе или / и оболочка?
оболочка путь:
Используя 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
Или через Вывод Perl
perl -pe 'print "smb:/"; s/\\/\//g' <<< "\MACHINE\dir1\dir2\file.xyz"
:
smb://MACHINE/dir1/dir2/file.xyz
Короче 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("/","\\");
}