1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【小技】ターミナルにもファイルの「カット&ペースト」がほしい!→作ってみた

Last updated at Posted at 2025-08-02

1.動機:mvで毎回パス書くの、地味にめんどくない?

ターミナル上でファイルを移動するとき、毎回こんなふうにパスを打ってませんか?

# 1. 対象ファイルを移動
mv file.txt ~/Library/CloudStorage/Dropbox/Documents/Reports

# 2. ディレクトリ移動
cd ~/Library/CloudStorage/Dropbox/Documents/Reports

もちろんこれで済む話ではあるんですが、移動先のパスを毎回書くのが面倒ですよね。
ディレクトリ、深いし、長いし、覚えてないし(aliasとかに登録してたりするので)。

ここで「GUI的な『カット→移動→ペースト』みたいな操作をターミナルでもやろう」。そう思って、「カット&ペースト風スクリプト」を作ってみました。

2.作ったスクリプト:vcut.sh & vpaste.sh

発想は単純で、~/.via という一時ディレクトリを用意してファイル移動を一旦そのディレクトリを経由するようにします。

vcut.sh(=~/.viaに移動)

#!/bin/bash
VIA_DIR="$HOME/.via"
mkdir -p "$VIA_DIR"

if [ $# -eq 0 ]; then
  echo "Usage: vcut.sh <file1> [file2] ..."
  exit 1
fi

for filepath in "$@"; do
  if [ -e "$filepath" ]; then
    mv -iv "$filepath" "$VIA_DIR"/
  else
    echo "Not found: $filepath"
  fi
done

vpaste.sh(=~/.viaから移動)

#!/bin/bash
VIA_DIR="$HOME/.via"
DEST_DIR="$(pwd)"

if [ -z "$(ls -A "$VIA_DIR" 2>/dev/null)" ]; then
  echo "No files to paste."
  exit 0
fi

mv -iv "$VIA_DIR"/* "$DEST_DIR"/

3.使い方

# 1. 対象ファイルをカット
vcut.sh file.txt

# 2. ディレクトリ移動
cd ~/Library/CloudStorage/Dropbox/Documents/Reports/

# 3. ペースト
vpaste.sh

これで、移動先のパスを2回も書く必要がなくなります

4.感想

使い方だけみるとコマンドの回数が最初の2回から3回に増えてて、逆に面倒に見えます。

しかし、mvコマンドの行き先指定が必要なくなっています。しかもvcut.shvpaste.shの間は1発で移動しなくても複数のcdを行ったり、alias等でショートカットしたりしても問題ないです。

いつもmvで指が止まっていたのが改善されて、思っていた以上に小さなストレスが軽減されて快適でした。

ちょっとしたことなんですが、毎日のCLI作業がほんの少し軽くなる感じがします。
GUI操作に慣れた人で「ターミナルでもこういうのがあれば助かる」って方にお役に立てればいいな、と思ってます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?