| 副标题[/!--empirenews.page--] 
 去年七月,我写了一篇关于 cp 命令的两种常见用法的文章:备份一个文件,以及同步一个文件夹的备份。 虽然这些工具确实很好用,但同时,输入这些命令太过于累赘了。为了解决这个问题,我在我的 Bash 启动文件里创建了一些 Bash  快捷方式。现在,我想把这些捷径分享给你们,以便于你们在需要的时候可以拿来用,或者是给那些还不知道怎么使用 Bash  的别名以及函数的用户提供一些思路。 使用 Bash 别名来更新一个文件夹的副本如果要使用 cp来更新一个文件夹的副本,通常会使用到的命令是: cp -r -u -v SOURCE-FOLDER DESTINATION-DIRECTORY
 其中 -r代表“向下递归访问文件夹中的所有文件”,-u代表“更新目标”,-v代表“详细模式”,SOURCE-FOLDER是包含最新文件的文件夹的名称,DESTINATION-DIRECTORY是包含必须同步的SOURCE-FOLDER副本的目录。 因为我经常使用 cp命令来复制文件夹,我会很自然地想起使用-r选项。也许再想地更深入一些,我还可以想起用-v选项,如果再想得再深一层,我会想起用选项-u(不知道这个选项是代表“更新”还是“同步”还是一些什么其它的)。 或者,还可以使用Bash 的别名功能来将 cp命令以及其后的选项转换成一个更容易记忆的单词,就像这样: alias sync='cp -r -u -v'
 如果我将其保存在我的主目录中的 .bash_aliases文件中,然后启动一个新的终端会话,我可以使用该别名了,例如: sync Pictures /media/me/4388-E5FE
 可以将我的主目录中的图片文件夹与我的 USB 驱动器中的相同版本同步。 不清楚 sync是否已经定义了?你可以在终端里输入alias这个单词来列出所有正在使用的命令别名。 喜欢吗?想要现在就立即使用吗?那就现在打开终端,输入: echo "alias sync='cp -r -u -v'" >> ~/.bash_aliases
 然后启动一个新的终端窗口并在命令提示符下键入 alias。你应该看到这样的东西: me@mymachine~$ alias alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '''s/^s*[0-9]+s*//;s/[;&|]s*alert$//''')"'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias gvm='sdk'alias l='ls -CF'alias la='ls -A'alias ll='ls -alF'alias ls='ls --color=auto'alias sync='cp -r -u -v'me@mymachine:~$
 这里你能看到 sync已经定义了。 使用 Bash 函数来为备份编号若要使用 cp来备份一个文件,通常使用的命令是: cp --force --backup=numbered WORKING-FILE BACKED-UP-FILE
 其中 --force代表“强制制作副本”,--backup= numbered代表“使用数字表示备份的生成”,WORKING-FILE是我们希望保留的当前文件,BACKED-UP-FILE与WORKING-FILE的名称相同,并附加生成信息。 我们不仅需要记得所有 cp的选项,我们还需要记得去重复输入WORKING-FILE的名字。但当Bash 的函数功能已经可以帮我们做这一切,为什么我们还要不断地重复这个过程呢?就像这样: 再一次提醒,你可将下列内容保存入你在家目录下的 .bash_aliases文件里: function backup {    if [ $# -ne 1 ]; then        echo "Usage: $0 filename"    elif [ -f $1 ] ; then        echo "cp --force --backup=numbered $1 $1"        cp --force --backup=numbered $1 $1    else        echo "$0: $1 is not a file"    fi}
 我将此函数称之为 backup,因为我的系统上没有任何其他名为backup的命令,但你可以选择适合的任何名称。 第一个 if语句是用于检查是否提供有且只有一个参数,否则,它会用echo命令来打印出正确的用法。 elif语句是用于检查提供的参数所指向的是一个文件,如果是的话,它会用第二个echo命令来打印所需的cp的命令(所有的选项都是用全称来表示)并且执行它。
 如果所提供的参数不是一个文件,文件中的第三个 echo用于打印错误信息。 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |