在日常作数据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