bash命令實用小片斷

背景

在日常作數據ETL和數據計算的時候,生成結果數據要落地,而且以咱們指定好的文件名保存到咱們指定的目錄中。可是當往後進行數據回溯時,一樣的程序會生成一樣的文件在相同的目錄中對原有的文件進行覆蓋。雖然平時用Python腳本能夠用自帶的api進行filePath進行判斷,可是對於小量數據的計算,並不用去打開編輯器寫Python,徹底能夠使用bash腳原本完成,下面在溫習bash的同時,寫了兩個常常操做文件的實用小功能api

1.if件分支判斷一個文件是否存在,若是文件存在打印相關信息並將該文件備份;若是不存在打印相關信息並建立一個新的文件。最後將輸出"file product over"。bash

#!/bin/bash
 echo hello; echo there
 filename=ttt.sh
 if [ -e "$filename" ]; then    # 注意: "if"和"then"須要分隔,-e是判斷文件存在否
     echo "File $filename exists."; cp $filename $filename.bak
 else
     echo "File $filename not found."; touch $filename
 fi; echo "file product over."

2.備份最後24小時當前目錄下全部修改的文件編輯器

#!/bin/bash
BACKUPFILE=backup-$(date +%m-%d-%Y)
# 在備份文件中嵌入時間.
archive=${1:-$BACKUPFILE}
#  若是在命令行中沒有指定備份文件的文件名,
#+ 那麼將默認使用"backup-MM-DD-YYYY.tar.gz".
tar cvf - `find . -mtime -1 -type f -print` > $archive.tar
gzip $archive.tar
echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"."
exit 0
相關文章
相關標籤/搜索