āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻĢāĻžāχāϞ āϏāĻŽāĻŋāϤāĻŋ āϏ⧇āϟ āφāĻĒ āĻ•āϰ⧁āύ

āφāĻŽāĻŋ āĻĢāĻžāχāϞ āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰ⧇āĻ›āĻŋ, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻāĻ•ā§āϏāĻĒā§āϞ⧋āϰāĻžāϰ/āĻĢāĻžāχāĻ¨ā§āĻĄāĻžāϰ āĻĨ⧇āϕ⧇ āϕ⧋āύ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻĻāĻŋāϝāĻŧ⧇ āĻĢāĻžāχāϞāϟāĻŋ āĻ–ā§‹āϞāĻž āĻšāĻŦ⧇ āϤāĻž āĻŦ⧇āϛ⧇ āύ⧇āĻ“āϝāĻŧāĻžāϰ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻž āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āĻāĻŦāĻ‚ āφāĻŽāĻŋ āĻāϟāĻŋ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻ›āĻŋāĨ¤

āĻĒā§āϰāĻĨāĻŽā§‡, āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻž āĻŦāϞāĻŋāĨ¤ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϝ⧁āĻ•ā§āϤ āĻĢāĻžāχāϞāϗ⧁āϞ⧋ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻĄāĻŋāĻĢāĻ˛ā§āϟāĻ­āĻžāĻŦ⧇ āĻ–ā§‹āϞ⧇ āύāĻž, āφāϰ āϖ⧁āϞāϞ⧇āĻ“ āφāχāϟāĻŋāωāύāϏ⧇āϰ āĻŽāϤ⧋ āϕ⧋āύ⧋ āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰ⧇ āĻ–ā§‹āϞ⧇āĨ¤ āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡, āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āχāύāĻ¸ā§āϟāϞ (āĻŦāĻž āĻāĻŽāύāĻ•āĻŋ āφāύāχāύāĻ¸ā§āϟāϞ) āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϏāĻ‚āϝ⧋āĻ—āϗ⧁āϞ⧋ āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ āĻĒ⧁āϰ⧋āĻĒ⧁āϰāĻŋ āĻšāĻžāϰāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧ: āϝ⧇āĻŽāύ, āφāĻĒāύāĻŋ āĻšāϝāĻŧāϤ⧋ GIMP āφāύāχāύāĻ¸ā§āϟāϞ āĻ•āϰāϞ⧇āύ, āφāϰ .ico āĻĢāĻžāχāϞāϗ⧁āϞ⧋ āφāĻĒāύāĻžāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻĢāĻžāχāϞ āĻ­āĻŋāωāϝāĻŧāĻžāϰ āĻĨ⧇āϕ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻĢāĻŸā§‹ āĻ—ā§āϝāĻžāϞāĻžāϰāĻŋāϤ⧇ āϚāϞ⧇ āϗ⧇āϞāĨ¤ āϕ⧇āύ? āϕ⧀ āϜāĻ¨ā§āϝ? āĻāϟāĻž āĻ¸ā§āĻĒāĻˇā§āϟ āύāϝāĻŧ... āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻāĻĄāĻŋāϟāϰ āϖ⧁āρāĻœā§‡ āĻĒāĻžāύ āĻŦāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ•āĻžāϰāϪ⧇ āύāϤ⧁āύ āĻ•āϰ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧇āύ? āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āĻĨāĻžāϕ⧇? āĻŽā§‚āϞāϤ, āĻĄāĻžāϝāĻŧāĻžāϞāĻ— āĻŦāĻ•ā§āϏ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻžāϟāĻž āĻŽā§‹āĻŸā§‡āĻ“ āĻŽāϜāĻžāϰ āĻŦā§āϝāĻžāĻĒāĻžāϰ āύāϝāĻŧāĨ¤

ВĐŧĐĩŅŅ‚Đž ŅŅ‚ĐžĐŗĐž Ņ ŅĐžŅ…Ņ€Đ°ĐŊиĐģ два Ņ„Đ°ĐšĐģиĐēа ĐŊа Dropbox и Ņ‚ĐĩĐŋĐĩŅ€ŅŒ ĐŋŅ€Đ¸Đ˛ĐĩŅŅ‚Đ¸ ĐēĐžĐŧĐŋŅŒŅŽŅ‚ĐĩŅ€ĐŊŅ‹Đš ĐŧĐ¸Ņ€ Đē ĐŋŅ€Đ¸Đ˛Ņ‹Ņ‡ĐŊĐžĐŧ҃ ŅĐžŅŅ‚ĐžŅĐŊĐ¸ŅŽ ĐŧĐžĐļĐŊĐž ĐŋĐžŅ‡Ņ‚Đ¸ ĐŧĐŗĐŊОвĐĩĐŊĐŊĐž. И ҇ĐĩĐŗĐž ĐļдаĐģ ŅŅ‚ĐžĐģҌĐēĐž ĐģĐĩŅ‚â€Ļ ДаĐģĐĩĐĩ Ņ€Đĩ҆ĐĩĐŋŅ‚ Đ´ĐģŅ Windows и macOS.

Windows

В ĐēĐžĐŊŅĐžĐģи Windows cmd.exe āĻāϟāĻŋ āĻĻ⧁āϟāĻŋ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āĻ•āϰāĻž āĻšāϝāĻŧ:

ftype my_file_txt="C:Windowsnotepad.exe" "%1"
assoc .txt=my_file_txt

ИСĐŧĐĩĐŊĐĩĐŊĐ¸Ņ Đ˛ŅŅ‚ŅƒĐŋĐ°ŅŽŅ‚ в ŅĐ¸Đģ҃ ŅŅ€Đ°ĐˇŅƒ. НĐĩҁĐŧĐžŅ‚Ņ€Ņ ĐŊа Ņ‚Đž, Ņ‡Ņ‚Đž Đ°ŅŅĐžŅ†Đ¸Đ°Ņ†Đ¸Ņ ĐŋŅ€ĐžĐŋĐ¸ŅŅ‹Đ˛Đ°ĐĩŅ‚ŅŅ Đ´ĐģŅ ĐēĐžĐŊĐēŅ€ĐĩŅ‚ĐŊĐžĐŗĐž ĐŋĐžĐģŅŒĐˇĐžĐ˛Đ°Ņ‚ĐĩĐģŅ, СаĐŋ҃ҁĐēĐ°Ņ‚ŅŒ ŅŅ‚Đ¸ ĐēĐžĐŧаĐŊĐ´Ņ‹ ĐŊ҃ĐļĐŊĐž ĐŋĐžŅ‡ĐĩĐŧ҃-Ņ‚Đž иС-ĐŋОд адĐŧиĐŊĐ¸ŅŅ‚Ņ€Đ°Ņ‚ĐžŅ€Đ°. И ĐŊĐĩ ĐˇĐ°ĐąŅ‹Ņ‚ŅŒ ĐˇĐ°Đ´Đ˛ĐžĐ¸Ņ‚ŅŒ ŅĐ¸ĐŧвОĐģ ĐŋŅ€ĐžŅ†ĐĩĐŊŅ‚Đ° (%%1) ĐŋŅ€Đ¸ СаĐŋ҃ҁĐēĐĩ иС bat-Ņ„Đ°ĐšĐģа. ВоĐģ҈ĐĩĐąĐŊŅ‹Đš ĐŧĐ¸Ņ€ Windows 7 Ultimate 64-bitâ€Ļ

macOS

MacOS-āĻ, āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏ⧁āĻŦāĻŋāϧāĻžāϜāύāĻ•āĻ­āĻžāĻŦ⧇ āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻ•āĻ°ā§āϤāĻŦā§āϝāĻāϟāĻŋ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻšāϝāĻŧ brew install dutiāĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āωāĻĻāĻžāĻšāϰāĻŖ:

duti -s com.apple.TextEdit .txt "editor"

āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞ⧋ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻšāϝāĻŧ; sudo-āĻāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχāĨ¤ āĻāĻ–āĻžāύ⧇, 'com.apple.TextEdit' āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϟāĻŋ āĻšāϞ⧋ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϟāĻŋāϰ āϤāĻĨāĻžāĻ•āĻĨāĻŋāϤ "āĻŦāĻžāĻ¨ā§āĻĄā§‡āϞ āφāχāĻĄāĻŋ"āĨ¤ "editor" āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϟāĻŋ āĻšāϞ⧋ āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϟāĻžāχāĻĒ: āϏāĻŽā§āĻĒāĻžāĻĻāύāĻžāϰ āϜāĻ¨ā§āϝ "editor", āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ "viewer", āĻāĻŦāĻ‚ āϏāĻŦāĻ•āĻŋāϛ⧁āϰ āϜāĻ¨ā§āϝ "all"āĨ¤

āφāĻĒāύāĻŋ "āĻŦāĻžāĻ¨ā§āĻĄā§‡āϞ āφāχāĻĄāĻŋ" āĻāχāĻ­āĻžāĻŦ⧇ āϖ⧁āρāĻœā§‡ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύ: āϝāĻĻāĻŋ āϤ⧃āϤ⧀āϝāĻŧ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇āϰ "/Applications/Sublime Text.app" āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻāϰ āĻŦāĻžāĻ¨ā§āĻĄā§‡āϞ āφāχāĻĄāĻŋ āĻšāĻŦ⧇ "com.sublimetext.3", āĻŦāĻž āĻ…āĻ¨ā§āϝ āĻ•āĻŋāϛ⧁:

> osascript -e 'id of app "Sublime Text"'
com.sublimetext.3

ĐŸŅ€ĐžĐ˛ĐĩŅ€ĐĩĐŊĐž ĐŊа macOS āϏāĻŋāϝāĻŧ⧇āϰāĻžāĨ¤

Đ˜Ņ‚ĐžĐŗĐžĐ˛Ņ‹Đš ҁĐēŅ€Đ¸ĐŋŅ‚ Đ´ĐģŅ Windows (.bat)

@echo off

set XNVIEW=C:Program Files (x86)XnViewxnview.exe
set SUBLIME=C:Program FilesSublime Text 3sublime_text.exe
set FOOBAR=C:Program Files (x86)foobar2000foobar2000.exe

call :assoc_ext "%SUBLIME%" txt md js json css java sh yaml
call :assoc_ext "%XNVIEW%" png gif jpg jpeg tiff bmp ico
call :assoc_ext "%FOOBAR%" flac fla ape wav mp3 wma m4a ogg ac3

goto :eof

:assoc_ext
  set EXE=%1
  shift
  :loop
  if "%1" neq "" (
    ftype my_file_%1=%EXE% "%%1"
    assoc .%1=my_file_%1
    shift
    goto :loop
  )
goto :eof

Đ˜Ņ‚ĐžĐŗĐžĐ˛Ņ‹Đš ҁĐēŅ€Đ¸ĐŋŅ‚ Đ´ĐģŅ macOS (.sh)

#!/bin/bash

# this allows us terminate the whole process from within a function
trap "exit 1" TERM
export TERM_PID=$$

# check `duti` installed
command -v duti >/dev/null 2>&1 || 
  { echo >&2 "duti required: brew install duti"; exit 1; }

get_bundle_id() {
    osascript -e "id of app "${1}"" || kill -s TERM $TERM_PID;
}

assoc() {
    bundle_id=$1; shift
    role=$1; shift
    while [ -n "$1" ]; do
        echo "setting file assoc: $bundle_id .$1 $role"
        duti -s "$bundle_id" ".${1}" "$role"
        shift
    done
}

SUBLIME=$(get_bundle_id "Sublime Text")
TEXT_EDIT=$(get_bundle_id "TextEdit")
MPLAYERX=$(get_bundle_id "MPlayerX")

assoc "$SUBLIME" "editor" txt md js jse json reg bat ps1 cfg sh bash yaml
assoc "$MPLAYERX" "viewer" mkv mp4 avi mov webm
assoc "$MPLAYERX" "viewer" flac fla ape wav mp3 wma m4a ogg ac3

āωāĻ¤ā§āϏ: www.habr.com

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster