ํ„ฐ๋ฏธ๋„ ํŒ ๐Ÿคฉ fcopy, fcut, fpaste

๋ฐœํ–‰: (2026๋…„ 3์›” 15์ผ AM 11:47 GMT+9)
3 ๋ถ„ ์†Œ์š”
์›๋ฌธ: Dev.to

Source: Dev.to

์†Œ๊ฐœ

์ €์™€ ๊ฐ™์ด ํ„ฐ๋ฏธ๋„์„ ์‚ฌ๋ž‘ํ•œ๋‹ค๋ฉด fcopy, fcut, fpaste ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”. ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์—์„œ ๋ณต์‚ฌํ•˜๋Š” ๋Œ€์‹  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

fcopy some/file/
fcopy other/file/image.png

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

fpaste

ํ•จ์ˆ˜

fcopy

fcopy() {
  if [ "$#" -eq 0 ]; then
    echo "fcopy: nothing to copy"
    return 1
  fi

  tmp="$(mktemp)"
  printf 'copy\n' > "$tmp"

  for item in "$@"; do
    if [ -e "$item" ]; then
      abs="$(realpath "$item")"
      printf '%s\n' "$abs" >> "$tmp"
      echo "copied to clipboard: $abs"
    else
      echo "fcopy: not found: $item" >&2
    fi
  done

  mv "$tmp" ~/.fileclip
}

fcut

fcut() {
  if [ "$#" -eq 0 ]; then
    echo "fcut: nothing to cut"
    return 1
  fi

  tmp="$(mktemp)"
  printf 'move\n' > "$tmp"

  for item in "$@"; do
    if [ -e "$item" ]; then
      abs="$(realpath "$item")"
      printf '%s\n' "$abs" >> "$tmp"
      echo "cut to clipboard: $abs"
    else
      echo "fcut: not found: $item" >&2
    fi
  done

  mv "$tmp" ~/.fileclip
}

fpaste

fpaste() {
  [ -f ~/.fileclip ] || { echo "fpaste: file clipboard is empty"; return 1; }

  mode="$(head -n1 ~/.fileclip)"
  count=0

  while IFS= read -r src; do
    [ -n "$src" ] || continue

    if [ ! -e "$src" ]; then
      echo "fpaste: source no longer exists: $src" >&2
      continue
    fi

    if [ "$mode" = "move" ]; then
      if mv -- "$src" .; then
        echo "moved: $src -> $PWD/"
        count=$((count + 1))
      else
        echo "fpaste: failed to move: $src" >&2
      fi
    else
      if cp -a -- "$src" .; then
        echo "pasted: $src -> $PWD/"
        count=$((count + 1))
      else
        echo "fpaste: failed to paste: $src" >&2
      fi
    fi
  done
}

์‚ฌ์šฉ ์š”์•ฝ

  • fcopy โ€“ ์ง€์ •ํ•œ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ž„์‹œ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  • fcut โ€“ ์ง€์ •ํ•œ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํด๋ฆฝ๋ณด๋“œ์— ์ด๋™ํ•ฉ๋‹ˆ๋‹ค(์ž˜๋ผ๋‚ด๊ธฐ ์ž‘์—…).
  • fpaste โ€“ ํด๋ฆฝ๋ณด๋“œ์— ์žˆ๋Š” ํ•ญ๋ชฉ์„ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค. ํด๋ฆฝ๋ณด๋“œ๊ฐ€ fcut ์œผ๋กœ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ ํ•ญ๋ชฉ์ด ์ด๋™๋˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค.

์ด ํ•จ์ˆ˜๋“ค์„ ์‰˜ ์„ค์ • ํŒŒ์ผ(์˜ˆ: ~/.bashrc ๋˜๋Š” ~/.zshrc)์— ์ถ”๊ฐ€ํ•˜๊ณ  ์‰˜์„ ๋‹ค์‹œ ๋กœ๋“œํ•˜์„ธ์š”.

0 ์กฐํšŒ
Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋ถ๋งˆํฌํ•ด์•ผ ํ•  10๊ฐ€์ง€ ๋ฌด๋ฃŒ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ๋„๊ตฌ

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋‚˜๋Š” ์ž‘์€ ํ•˜์ง€๋งŒ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์— ๋†€๋ผ์šธ ์ •๋„๋กœ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋‚ธ๋‹ค โ€” ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ๋ณ€ํ™˜, JWT ๋””์ฝ”๋”ฉ, SQL ์ฟผ๋ฆฌ ํฌ๋งทํŒ… ๋“ฑ...