自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Linux中利用變量給文件命名

運維 系統(tǒng)運維
前不久有一個Linux系統(tǒng)管理員向筆者求助。他說他們在Linux操作系統(tǒng)上部署了一個Oracle 10G的數(shù)據(jù)庫系統(tǒng)?,F(xiàn)在他們利用數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)泵工具從系統(tǒng)中備份數(shù)據(jù)。他們希望每天把這個備份文件復(fù)制到一個特定的地方。

前不久有一個Linux系統(tǒng)管理員向筆者求助。他說他們在Linux操作系統(tǒng)上部署了一個Oracle 10G的數(shù)據(jù)庫系統(tǒng)?,F(xiàn)在他們利用數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)泵工具從系統(tǒng)中備份數(shù)據(jù)。他們希望每天把這個備份文件復(fù)制到一個特定的地方。到這一步為止都沒有問題。但是他們希望在復(fù)制的過程中,能夠利用變量名對這個備份文件進(jìn)行命名。如按星期幾的不同,分別命名為1backup.dmp,2backup.dmp等等。前面的1、2就表示星期幾的意思。這么設(shè)置的話,一個星期一個輪回。到下個星期一的話,新的備份文件就會把舊的備份文件替換掉。如此的話,備份文件所占用的硬盤空間也就不會無限制的增加上去。
 
筆者對于他們?yōu)槭裁床恢苯硬捎肙racle提供的備份工具制定備份策略對數(shù)據(jù)庫進(jìn)行備份感到不解。不過要實現(xiàn)上面這個利用變量來給文件命名的話,還是可以實現(xiàn)的。筆者根據(jù)他們企業(yè)的需求,給這個系統(tǒng)管理員詳細(xì)的闡述了實現(xiàn)方法。

一、文件創(chuàng)建時間與系統(tǒng)時間的關(guān)系。


在利用變量來命名文件名字的時候(如時間變量),需要注意一個問題,就是文件的創(chuàng)建時間與系統(tǒng)時間的關(guān)系。如上面這個需求,如果某個文件是在星期一創(chuàng)建的,而在星期二時復(fù)制這個文件。那么此時文件的名字應(yīng)該為多少呢?是按文件的創(chuàng)建時間來命名,還是按復(fù)制的時間來命名的。如果從上面這個需求來看,利用文件的創(chuàng)建時間來命名更加的合理。因為這個創(chuàng)建時間才真正體現(xiàn)了數(shù)據(jù)庫的備份時間。

二、相關(guān)命令參數(shù)解析。


如果要把一個文件復(fù)制到另外一個地方,同時利用時間變量對其進(jìn)行重命名的話,那么可以利用如下的命令來實現(xiàn)cp mydb.log "(date %w)"mydb.log。這個命令的意思就是把mydb.log復(fù)制到一個特定的位置(當(dāng)前目錄下),并對此進(jìn)行重新命名。命名的規(guī)則就是在原來的文件變量前面加上一個時間參數(shù),這里采用的是星期的時間變量。
 
"(date %w)"這個參數(shù)就是截取星期幾的時間變量。注意,這里的時間是按照文件的創(chuàng)建時間來的,而不是參考文件復(fù)制的時間。也就是說,如果這個文件的創(chuàng)建時間是星期三,而復(fù)制時間是星期四的話,那么這個變量的值就為3,而不是4。因為文件的創(chuàng)建時間為3。筆者以前剛開始接觸Linux操作系統(tǒng)的時候,經(jīng)常犯這個錯誤。希望筆者這個過來人常犯的錯誤,能夠引起大家的警惕。
 
另外上面這個時間參數(shù),必須要用雙引號括起來。不過不這么做的話,那么系統(tǒng)就會提示這個命令有錯誤。這是一個語法上的錯誤。所以如果系統(tǒng)管理員在批處理程序中使用這個命令的話,那么***能夠進(jìn)行預(yù)先測試。因為這些語法錯誤的話,就算再老到的系統(tǒng)管理員,一不小心就容易犯。實踐是檢驗真理的唯一標(biāo)準(zhǔn),這句話是不會錯的。
 
還有一個小細(xì)節(jié)就是"(date %w)"與"(date +%w)"有區(qū)別嗎?這個既有區(qū)別,又可以說沒有。這主要是看用在什么場合了。如果用在CP命令中,則中間加不加(+)加號,是一樣的。但是,在其他一些命令場合中,必須要加入中間這個加號。否則的話,系統(tǒng)會提示錯誤。如下面筆者要談到的ECHO命令,就有這方面的要求。

三、利用Echo命令來進(jìn)行測試。


如果系統(tǒng)管理員對于自己編寫的命令參數(shù)不怎么肯定的話,那么就可以利用echo命令來進(jìn)行測試。Echo命令可以顯示環(huán)境變量的值,也可以顯示某些特定變量的值。其實這些變量就是系統(tǒng)中的環(huán)境變量。如下圖所示。利用echo $(date +%w)就可以顯示當(dāng)天系統(tǒng)時間。這個命令只顯示星期幾。

 


 
如果使用這個命令的話,跟cp命令中最終的時間參數(shù)還是有一點差距,主要體現(xiàn)在以下這幾個方面。
 
首先,要利用echo命令來顯示系統(tǒng)變量值的時候,必須在變量前面加上$符號。如果加上這個符號,系統(tǒng)就會認(rèn)為這是一個環(huán)境變量,或者由環(huán)境變量轉(zhuǎn)換過來的一個變量。如果不加這個符號的話,則操作系統(tǒng)會無法識別,也就不能夠正常顯示這個變量的值了。

其次,在這個變量中,中間必須加入+號。如上圖所示,如果不加入這個+號的話,則操作系統(tǒng)就會提示錯誤,說%w是一個無效的參數(shù)。但是在cp命令中,則沒有這個強制的限制。在中間加不加這個加號,都能夠達(dá)到同樣的效果。不過為了提高參數(shù)的準(zhǔn)確性,***大家還是按照這個echo命令可以認(rèn)可的格式下。因為echo命令可以認(rèn)可的格式,則在其他命令中是通用的。相反,其他命令中可以用的格是,在echo等命令上不一定通用。所以為了提高編寫的腳本程序的移植性,***能夠采用通用的變量書寫方式。

 

【編輯推薦】

  1. Linux系統(tǒng)下配置Netware服務(wù)器方法
  2. 嵌入式設(shè)備上的 Linux 系統(tǒng)開發(fā)
  3. 深度介紹Linux內(nèi)核是如何工作的(1)
責(zé)任編輯:張燕妮 來源: IT專家網(wǎng)
相關(guān)推薦

2023-11-25 17:13:49

Linux重命名文件

2018-06-25 13:10:16

Linux復(fù)制重命名

2011-06-14 09:21:55

Linux Qt 環(huán)境變量

2019-09-24 20:07:30

Linux移動文件 命令

2009-06-26 08:35:48

Linux庫文件操作系統(tǒng)

2024-01-03 10:17:51

Linux通信

2021-09-13 12:15:57

Linux文件命令

2019-03-18 09:40:44

Linux命令編程語言

2009-12-22 15:28:51

Linux批量重命名文

2011-03-29 15:49:45

BashLinux服務(wù)器

2023-03-21 12:52:05

Linux創(chuàng)建文件

2018-06-01 10:37:26

Linux歸檔文件壓縮文件

2009-02-27 11:01:46

LinuxNoStaples掃描文檔

2017-03-01 14:16:36

Linux文件管理器隱藏文件

2009-06-29 09:24:19

Linux

2023-05-13 17:43:17

Linux文件文件夾

2021-08-16 13:34:07

Linux終端刪除文件

2022-04-06 10:34:09

Linux元數(shù)據(jù)

2023-08-01 08:26:24

Linux文件目錄

2022-11-03 10:36:30

Linux隱藏文件
點贊
收藏

51CTO技術(shù)棧公眾號