特定のファイルにファイルをコピーするためのエイリアス

特定のファイルにファイルをコピーするためのエイリアス

ファイルの場所を監視するスクリプトがあり、ファイルがそのファイルの場所にコピーされるシナリオがあります /home/matt/thefile

place myfile.txtこれにより、/home/matt/thefile上書きするエイリアスが必要になりますmyfile.txt

答え1

機能がより適切になります。

Bourneのようなシェルから:

place() { cp -- "$1" /home/matt/thefile; }

bashyash以外のシェルでは、poshこれを次のように単純化できます。

place() cp -- "$1" /home/matt/thefile

存在するfish

function place
  cp -- $argv[1] /home/matt/thefile
end

存在するrc/ es:

fn place {
  cp -- $1 /home/matt/the/file
}

これは、これらのシェルに機能がないため、(t)cshanを使用する必要があるためです(これが最初にエイリアスが導入された理由です)。履歴置換を使用して、特定のパラメータをエイリアスに渡すことを許可できます。aliascsh(t)csh

alias place 'cp -- \!:1 /home/matt/the/file'

呼び出されると、次の場所にplace myfile.txtコピーされます。myfile.txt~/thefile

ユーザーのシェルに関係なく機能したい場合は、シェルカスタムファイルにシェル固有の機能/エイリアスを追加するのではなく、ディレクトリのコマンド検索パスに追加するスクリプトを作成できます。それは次のとおりです。

#! /bin/sh -
exec cp -- "${1?Please give the file to copy as argument}" /home/matt/thefile

関連情報