このエントリーをはてなブックマークに追加


aliasで設定したコマンドを一時的に無効にして実行する方法

aliasで以下のように指定して使用している場合がありますよね。

$ alias 
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias cp='cp -i'

上記の設定で、cpコマンドを使用した場合、iオプションが指定されているので、ファイルが存在する場合は上書きメッセージが表示されます。
これをunaliasを使用せずに一時的に無効にする方法を以下に記します。


関連記事

バックスラッシュを使用すると一時的に無効になる

以下に alias cp='cp -i' を使用してaliasの一時的に無効にする方法を記します。
使用したOSはCentOSになります。 1. 以下のようにaliasコマンドでcpコマンドをcp -iにし、flower.txtに2度cpしようとすると「上書きしてもよろしいですか(yes/no)?」が表示されます。

$ alias cp='cp -i'
$ echo sakura > sakura.txt
$ cp sakura.txt flower.txt
$ cp sakura.txt flower.txt 
cp: `flower.txt' を上書きしてもよろしいですか(yes/no)? no

2. -fオプションで強制的にcpしてみても-iが有効なため「上書きしてもよろしいですか(yes/no)?」が表示されます。

$ cp -f sakura.txt flower.txt 
cp: `flower.txt' を上書きしてもよろしいですか(yes/no)? no

3. 最初にバックスラッシュ(\)を付加しcpコマンドを実行するとaliasに指定したcpコマンドは一時的に無効(本コマンドのみ)になり意図した動作になります。

$ \cp -f sakura.txt flower.txt 
$ 

4.再度、バックスラッシュ(\)を付けずに実行すると「上書きしてもよろしいですか(yes/no)?」が表示されます。

$ cp -f sakura.txt flower.txt 
cp: `flower.txt' を上書きしてもよろしいですか(yes/no)? 

以上、aliasに指定した設定を一時的に無効にする方法と実行例でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:29:58