我知道之前已经有人问过有关此错误的问题 - 但我似乎无法弄清楚为什么这在这种情况下不起作用:对于别名。
我有以下内容
alias scpip='scp $1 [email protected]:~'
我希望用例能够scpip file
将文件复制到 ip.edu 中的用户主目录中。相反,我得到了错误
scp: /home/user: not a regular file
如果我“手动”执行它,它就会起作用,即 。我怎样才能使它作为带有参数的别名工作?scp file [email protected]:~
答案1
如果运行命令时,第一个参数 or$1
是一个目录(看起来确实如此),那么您需要使用开关-r
来复制它,无论它是否包含数据。它可以作为别名运行,但它更复杂并且不值得付出努力。最好只创建一个脚本。
scpip
在/home/目录中创建一个名为的文件
内容如下:
scp -r $1 [email protected]:~
添加执行位:
chmod u+x /home/directory/scpip
在你的中~/.bashrc
,添加行
export PATH=/home/directory:$PATH
获取初始化:
. ~/.bashrc
最后,运行脚本:
scpip file
这将使用第一个参数。如果是一个文件的话
scp -r file [email protected]:~
如果一个目录
scp -r directory [email protected]:~