指令碼編寫背景
無論是生產環境、測試環境還是開發環境,經常需要使用rm命令刪除&批量一些「重要」目錄下的檔案。按照linux的哲學「小即是美」(乙個程式只做一件事)+「使用者清楚自己做什麼」(使用者知道自己想要什麼,也明白自己在做什麼,並且會為自己的行為負責),那麼使用者在執行rm時,一定要知道自己的操作可能引起的後果,因此「三思而後行」真的很重要。但這對於一部分人來講,真的可能是災難性的,手抖、手賤和任何錯誤的操作(在路徑分隔符"/"前多打了空格,錯誤使用*,錯誤的路徑(當前路徑、相對路徑、錯誤的操作路徑)、錯誤指令碼(竟然有人敢在生產環境除錯未經過測試的指令碼)、錯誤的批量操作、錯誤的安全策略)都可能引起資料的丟失,這在生產環境,特別是缺少備份缺少熱備的生產環境中是非常致命非常可怕的。
因此通過指令碼或者其他方式來讓使用者後悔一次是非常有必要的。
本文用bash shell script的方式實現這一問題,其他解決方案可以參見文末的「參考」。
指令碼編寫思路
跟**站的思路比較相似,**站有這樣的特性:1.並非真的刪除;2.同名的可以;3.記住檔案的源路徑,作為指令碼也應該做到如此
指令碼使用起來應該跟rm使用起來基本類似
指令碼使用截圖
關於rm的引數問題
指令碼內使用忽略的策略,無論使用rm的哪種引數,都將進行mv操作,此處宜當改進。
指令碼內容
指令碼內容可以參見
github.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
bat指令碼生產案例解析
echo off 關閉顯示 set filename d 運維平台 運維log log date 0,4 date 5,2 date 8,2 txt cls 清除螢幕 setlocal enabledelayedexpansion set basecfgfile cfg config.ini 設定引...
Linux,shell指令碼 生成自簽名私鑰和證書
bin bash 蘇蘇 su peng da read p 請輸入存放證書的目錄 dir if d dir then echo 該目錄不存在 exit firead p 請輸入金鑰名稱 name 使用 openssl 生成私鑰 openssl genrsa out dir dir key 使用 op...
Linux Shell指令碼基礎
shell指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...