環(huán)境:操作系統(tǒng):CentOS7.6;shell:zsh5.0.2晚上搬磚到凌晨2點(diǎn)多時(shí),一時(shí)糊涂,竟然莫名其妙地在shell命令行中敲下了如下讓我后悔莫及的命令:mv/*/www/wwwroot從而將系統(tǒng)根目錄下面的/bin、/etc、/sbin、/usr、/var、/root、/home等目錄移動到了/www/wwwroot目錄下,于是導(dǎo)致很多命令都無法正常執(zhí)行。整個(gè)人都懵了的情況之下,手忙腳亂中又關(guān)閉了連線中的shell終端會話窗口,于是再也連不上服務(wù)器了。由于根本連不上服務(wù)器,之后找云服務(wù)商幫忙也表示愛莫能助,只能重裝系統(tǒng)。這次教訓(xùn)過于慘痛,痛定思痛之余,為了以后避免類似事件,想編寫一個(gè)攔截mv命令的同名函數(shù),當(dāng)發(fā)現(xiàn)mv后面輸入的是/*或/bin、/etc、/sbin、/usr、/var、/root、/home時(shí),echo一個(gè)警告信息出來,然后退出執(zhí)行。但我發(fā)現(xiàn)在條件表達(dá)式中無法匹配到參數(shù)“/*”中的星號*,因?yàn)樾翘?在作為參數(shù)輸入之前已被展開,因此實(shí)際上輸入的參數(shù)是星號*展開后的值。由于在下水平有限,這里請教一下各位shell高手,能否根據(jù)上述要求,編寫一個(gè)攔截mv命令的同名函數(shù)。誠摯感謝!
一次慘痛的教訓(xùn)后,向各位shell高手求一個(gè)Linux mv命令的同名攔截函數(shù)謝謝哈~
函數(shù)式編程
2019-09-19 22:10:43