shell - 如何使用相同的文件夹名称 tar gzip
问题描述
全部,我需要对文件夹进行 tar gzip 压缩,并且名称应与原始文件夹名称相同。
示例目录:/user/abc/documents/20190101 我需要通过不明确指定文件夹名称来将 20190101 文件夹 tar 到 20190101.tar.gz。
tar -czvf /user/abc/documents/20190101.tar.gz /user/abc/documents/20190101/testing/20190506-081500000
解决方案
试试这个,如果你可以使用 bash:
目标文件
#!/bin/bash
name=$(sed 's@\(.*/\)\([0-9]*\)/.*@\1|\2@' <<< "$1")
tar -czvf "${name%%|*}${name##*|}.tar.gz" "$1"
用法
targz.sh "/user/abc/documents/20190101/testing/20190506-081500000"
解释
sed ' # use sed
s@ # substitute
\(.*/\) # save first part into arg1 (\1)
\([0-9]*\)/ # save date into arg2 (\2)
.*@ # ignore all char to the end
\1|\2@' <<< "$1" # print \1 | \2
${name%%|*} # \1 --> path
${name##*|} # \2 --> date
推荐阅读
- swift - 将图像上传到 firebaseStorage
- javascript - 提取包含换行符之间匹配的文本
- email - 允许 Office 365 中的一位外部用户向分发列表发送电子邮件
- r - 如何更改散点图上的 x 值
- react-native - FlatList renderItem 返回未定义
- .net - .NET Parallel.Foreach 如何构造 IO 密集型操作
- angular - 为什么授权标头未在 Angular 的 API 请求中发送?
- laravel - Laravel 8 对搜索结果进行排序和分页
- ios - 我将如何从不同的类中快速更改 UILabel 的值?
- vue.js - Vue.js 中类别的嵌套路由