com*_*ose 8 unix linux shell tee
我正在尝试使用tee命令将输出重定向到文件,我希望在尚未创建的目录中创建该文件.
date | tee new_dir/new_file
Run Code Online (Sandbox Code Playgroud)
当new_dir不存在时,tee命令失败说
tee:new_dir/new_file:没有这样的文件或目录
如果我在运行tee命令之前创建new_dir,那么它工作正常,但由于某种原因我不想手动创建new_dir,是否可以使用tee命令创建new_dir?
替换tee为为您创建目录的函数:
tee() { mkdir -p ${1%/*} && command tee "$@"; }
Run Code Online (Sandbox Code Playgroud)
如果您希望函数在使用简单文件名调用时工作:
tee() { if test "$1" != "${1%/*}"; then mkdir -p ${1%/*}; fi &&
command tee "$1"; }
Run Code Online (Sandbox Code Playgroud)