我正在尝试创建一个脚本,该脚本将使用tar文件末尾的时间戳在同一目录中创建视频文件的备份文件。该脚本仅用于演示目的,这就是我不打算将文件发送到其他目录的原因。以下是我走了多远。
#!/bin/bash
cd Compression_Play/
echo Me.$(date +%d_%b_%Y-%k:%M:%S).tar.xz
tar -I "pixz -9t" -cvf Me.$(date +%d_%b_%Y-%k:%M:%S).tar.xz 2017-03-23_01-13-02.avi
我的问题是每当我尝试执行脚本时它都会给我这个:
Me.29_Mar_2017-22:03:49.tar.xz
tar: -9: (PROGRAM ERROR) Option should have been recognized!?
Try 'tar --help' or 'tar --usage' for more information.
尽我所知,问题在于我的tar
命令中的引号。有没有办法制作脚本,以便我可以保留引号或替换它们?
答案 0 :(得分:0)
鉴于您的目标是进行存档,可能保留所有者,文件模式,文件标志和ACL(如果可用),那么这应该可以满足您的需求:
#!/bin/bash
archive_name="Me.$(date +%d_%b_%Y-%k:%M:%S).tar.xz"
$(cd Compression_Play/
tar -cvp 2017-03-23_01-13-02.avi |
pixz -9t > $archive_name
)
根据pixz
对pixz -x9T < $archive_name | tar xvpf -
进行tarball压缩/解压缩,您需要撤消管道以获取数据:
bundle.js
答案 1 :(得分:0)
#!/bin/bash
cd /home/apowell/Compression_Play/Test_Backup
tar -I 'pixz -9t' -cvf Me.$(date +%d_%b_%Y-%H_%M_%S).tar.xz /home/apowell/Compression_Play/Linux_Programs
这个通过用简单的xz替换pixz来压缩一点。
#!/bin/bash
cd /home/apowell/Compression_Play/Test_Backup
tar -I 'xz -9ve -T8 -k' -cvf Me.$(date +%d_%b_%Y-%H_%M_%S).tar.xz /home/apowell/Compression_Play/Linux_Programs