分享几个觉得有用的小 shell 函数。
1. scppath
在进行一些跨机器的操作时,每次 scp 总要手动去拼那个路径,首先从 PS1 拷贝粘贴用户名和主机名,然后再 pwd 拷贝粘贴当前目录,然后再 ls 拷贝粘贴要 scp 的文件名。好烦啊,所以就写了下面这个小函数来生成 scp 的文件路径,放到 ~/.bashrc 里。
function scppath()
{
local _IFS=$IFS
IFS=$(echo -en "\n\b")
local _file
for _file in $@; do
echo "\"$USER@$HOSTNAME:$PWD/$_file\""
done
IFS=$_IFS
}
2. cppath
同样可以有 cppath。
function cppath()
{
local _IFS=$IFS
IFS=$(echo -en "\n\b")
local _file
for _file in $@; do
echo "\"$PWD/$_file\""
done
IFS=$_IFS
}
3. mybackup
这个函数是偷懒备份用的。当写代码写到一半,不想或者不能 check in,但又想备份一下时,就用这个命令对文件或者目录进行自动的备份。
function mybackup()
{
local _bak_dir=~/history
local _path=''
mkdir -p $_bak_dir
local _IFS=$IFS
IFS=$(echo -en "\n\b")
for _path in $@; do
if [ -f $_path ]; then
cp $_path $_bak_dir/"$_path".`date +%Y-%m-%d.%H-%M-%S`
elif [ -d $_path ]; then
_path=`basename $_path`
tar -cvf $_bak_dir/$_path.`date +%Y-%m-%d.%H-%M-%S`.tar $_path
fi
echo "Backuped $_path to $_bak_dir."
done
IFS=$_IFS
}