运行命令解压缩时间戳文件夹中的文件?

我有一个.tar文件,每晚由我们的一个客户端pipe理系统传输到我们的服务器上。 该文件是一个压缩的.sql文件,我需要解压缩并转储到我们的数据库。

.tar文件的目录是/root/backups/premvet_sync/2012.07.17.10.09.19 。 正如你所看到的,目录是file upload到服务器的时间戳。

我正在尝试创build一个cron作业,将其放入该目录,然后解压缩它。 我通常会使用的命令是这样的:

cd /root/backups/premvet_sync/2012.07.17.10.09.19 && tar -xvf backupfile.tar

显然这个命令只会运行一次(当时间戳与cron作业path相匹配时)。 有什么我可以做的CD到最新的目录?

服务器运行Ubuntu 10.04 LTS,如果有什么区别的话。

更新

对于任何有兴趣的人来说,这里是最后的(工作)bash脚本。

 #!/bin/sh # Untar backup database and dump into local mysql server. echo "Finding latest backup directory" dir=$(ls -td1 /root/backups/backup/* | head -1) echo "Opening latest backup directory" cd $dir echo "Uncompress backup tar -xvf backup.tar echo "Dig down into correct directory" cd $dir/backup/databases/MySQL echo "mysqldump the compressed database file" gunzip < backup.sql.gz | mysql -u USERNAME -pPASSWORD restore_db_name echo "Done." 

您可以使用ls -t以最新的第一个顺序列出/root/backups/premvet_sync/的内容,然后将其传递给第一行

 dir=$(ls -td1 /root/backups/premvet_sync/* | head -1) 

将把/root/backups/premvet_sync/2012.07.17.10.09.19放在$dir这样你就可以了

 cd $dir 
  • – 按修改时间sorting
  • -1每行列出一个文件
  • -d列出目录条目而不是内容,…
 DATE=`date +%Y%m%d-%H%M%S` mkdir -p /some/dir/$DATE cd /some/dir/$DATE 

等等