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