14.7创建临时文件

  linux系统中使用/tmp目录存放不需要一直保存的文件。linux发行版本配置了系统在启动时自动删除/tmp目录的所有文件。

  系统上的任何用户账户都有权限在/tmp目录中读和写。

  mktemp命令可以在/tmp目录中创建一个唯一的临时文件。shell会创建这个文件,但不需要默认的umask值。它会将文件的读和写权限分配给文件的属主。并将你设置成文件的属主。一旦创建了文件,你就在脚本中有完整的读写权限,但其他人没法访问它(除去root用户)

  mktemp命令创建文件时,格式:mktemp test.XXXXXX

模板可以包含任意文本文件名,在文件名末加.XXXXXX。

  mktemp命令会用6个字符码替换这6个XXXXXX,保证文件名在目录中是唯一的。

liuxj@liuxj-Lenovo:/tmp$ mktemp liuxj_test.XXXXXX
liuxj_test.1YIATw

  mktemp命令的输出正是它所创建的文件的名字。

 

将输出一边发送到显示器一边发送到日志文件,可用特殊的tee命令

tee命令将STDIN过来的数据同时发给STDOUT和另一个目的地是tee命令行所指定的文件名

tee filename

由于tee会将从STDIN过来的数据重定向,你可以用它和管道命令来一起将任何命令的输出重定向:

date | tee testfile

注意:默认情况下,tee命令会在每次使用的时候覆盖输出文件内容:

如果你想将数据追加到文件中,必须用-a选项:

 date | tee -a testfile

例子:

tempfile=test17file

echo "This is the start of the test" | tee $tempfile
echo "This is the second line of the test"|tee -a $tempfile
echo "This is the end of the test"| tee -a $tempfile

 

posted on 2017-01-22 14:42  白宫飘红旗  阅读(191)  评论(0编辑  收藏  举报