简短的 tar 脚本:尝试将今天的日期添加到压缩文件名时出现“找不到命令”
Posted
技术标签:
【中文标题】简短的 tar 脚本:尝试将今天的日期添加到压缩文件名时出现“找不到命令”【英文标题】:Short tar script: 'command not found' when trying to add today's date to a compressed file name 【发布时间】:2018-12-29 04:28:34 【问题描述】:我正在尝试创建一个执行以下操作的脚本:
-
如果 /home/testuser/backup 不存在,则将其创建为目录(如果存在则不会显示错误消息)
获取当前日期并将其存储为变量
使用焦油:
备份整个项目文件目录
备份被压缩,gzip 格式,存档格式
使用存储的变量在 tar 文件名中包含日期
备份到 /home/testuser/backup 目录
创建一个名为 testuser.log 的日志文件,其中包含 tar 命令生成的所有消息(使用详细模式)
将日志文件保存在 /home/testuser/backup/testuser.log 中
我在使用命令语法时遇到问题,我不太明白我做错了什么。
cd /home/testuser
mkdir -p /home/testuser/backup
today=$(date'+%d-%m-%y')
tar -zcvf testuserbackup-$today.tar.gz projectfiles &&
testuserbackup-$today.tar.gz /home/testuser/backup
testuserbackup-$today.tar.gz >> testuser.log 2>/dev/null
mv testuser.log /home/testuser/backup
当我尝试运行脚本时,我得到以下终端输出:
./script2.sh: line 6: date+%d-%m-%y: command not found
projectfiles/
projectfiles/budget/
projectfiles/budget/testuserbudget1.txt
projectfiles/budget/testuserbudget2.txt
projectfiles/old/
projectfiles/old/testuserold2.txt
projectfiles/old/testuserold1.txt
projectfiles/documents/
projectfiles/documents/testuserdoc2.txt
projectfiles/documents/testuserdoc1.txt
./script2.sh: line 7: testuserbackup-.tar.gz: command not found
我愿意接受任何建议。这个任务来自上学期的一个旧作业,我正在重新审视它...... 根据我以前的作业笔记,这项任务应该能够在不超过 4 行代码中完成。
**编辑:**完成的脚本(在 John 的协助下)
#!/bin/bash
mkdir -p /home/testuser/backup
today=$(date '+%d-%m-%y')
tar -zcvf backup/testuserbackup-"$today".tar.gz projectfiles >
backup/testuser.log 2>&1
【问题讨论】:
【参考方案1】:你少了一个空格:
today=$(date '+%d-%m-%y')
# ^
另外,这些行应该全部合并:
tar -zcvf testuserbackup-$today.tar.gz projectfiles &&
testuserbackup-$today.tar.gz /home/testuser/backup
testuserbackup-$today.tar.gz >> testuser.log 2>/dev/null
mv testuser.log /home/testuser/backup
日志文件需要与tar
命令在同一行中创建,并且可以通过写出它们的完整路径来使 tarball 和日志文件显示在正确的位置。这样就无需稍后再移动它们。
tar -zcvf backup/testuserbackup-"$today".tar.gz projectfiles > backup/testuser.log 2>&1
捕获 stderr 和 stdout 是个好主意,所以我将 2>/dev/null
更改为 2>&1
。
【讨论】:
以上是关于简短的 tar 脚本:尝试将今天的日期添加到压缩文件名时出现“找不到命令”的主要内容,如果未能解决你的问题,请参考以下文章