用于将文件复制到特定文件的别名

用于将文件复制到特定文件的别名

我有一个场景,我有一个监视文件位置的脚本,并且该文件位置已复制文件,即 /home/matt/thefile.

我想要一个别名,如果我place myfile.txt这样做,它将被/home/matt/thefile覆盖myfile.txt

答案1

一个函数会更合适。

在类似 Bourne 的 shell 中:

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

bash在,以外的 shell 中yashposh您可以将其简化为:

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)csh因为您需要使用 an ,alias因为这些 shell 没有函数(这也是csh首先引入别名的原因)。您(t)csh可以使用历史替换来允许某种参数传递给别名。

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

当被称为 时place myfile.txt,它们会复制myfile.txt~/thefile

如果您想要无论用户的 shell 是什么都可以工作的东西,而不是让他们将特定于 shell 的函数/别名添加到他们的 shell 自定义文件中,您可以创建一个脚本,将其添加到他们的目录中命令搜索路径。就像是:

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

相关内容