原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。/content/3019726.html 實例:老男孩linux實戰培訓第9期(10月22日)入學考試題第10題:10.已知/tmp下已經存在test.txt文件,如何執行命令才能把/mnt/test.txt覆蓋掉/tmp/test.txt而讓系統不提示是否覆蓋(root權限下)。
簡要解釋:為了防止用戶誤操作,所以centos linux操作系統在設計時,默認執行cp的操作是調用了cp的別名(相當於執行cp -i)。所以提示覆蓋。此題的思路就是要屏蔽掉系統別名。
詳細說明: cp命令默認是不會提示覆蓋的,但是cp帶-i參數執行時會提示,而Linux的起動文件~/.bashrc中會把cp命名成
alias cp='cp -i' 如:[root@student tmp]# alias |grep cpalias cp='cp -i'
這樣在Linux下輸入cp命令實際上運行的是cp -i,加上一個“\”符號或者寫cp全路徑/bin/cp就是讓此次的cp命令不使用別名(cp -i)運行。此處涉及到alias和unalias兩命令的用法,同時大家也想想別名的好處及怎麼樣利用這個特性為我們服務。建議:抽時間總結alias和unalias兩命令的用法。
學生解答及老師批改評價案例:
提示:同樣命令還有mv、rm等。希望大家做事也能盡量的舉一反三,由此及彼,拓寬思路和視野。
特別說明:腳本裡直接寫命令也可以逃避別名,但是我們習慣還是用全路徑。例子:[root@oldboy test]# pwd/root/test[root@oldboy test]# lltotal 8-rw-r--r-- 1 root root 2 Jun 19 10:51 oldboy.log-rwxr-xr-x 1 root root 54 Jun 19 10:51 test.sh[root@oldboy test]# cat test.shcp oldboy.log /tmprm oldboy.logmv /tmp/oldboy.log .[root@oldboy test]# sh test.sh[root@oldboy test]# sh -x test.sh+ cp oldboy.log /tmp+ rm oldboy.log+ mv /tmp/oldboy.log .[root@oldboy test]# lltotal 8-rw-r--r-- 1 root root 2 Jun 19 10:52 oldboy.log-rwxr-xr-x 1 root root 54 Jun 19 10:51 test.sh[root@oldboy test]# ll --full-timetotal 8-rw-r--r-- 1 root root 2 2012-06-19 10:52:25.000000000 +0800 oldboy.log-rwxr-xr-x 1 root root 54 2012-06-19 10:51:48.000000000 +0800 test.sh[root@oldboy test]# sh test.sh[root@oldboy test]# ll --full-timetotal 8-rw-r--r-- 1 root root 2 2012-06-19 10:52:41.000000000 +0800 oldboy.log-rwxr-xr-x 1 root root 54 2012-06-19 10:51:48.000000000 +0800 test.sh本文出自 “老男孩linux培訓” 博客,請務必保留此出處/content/3019726.html