我的目录结构如下:
main_directory/
directory1:
sub_directory1:
files:
myfile.txt
otherfile.txt
sub_directory2:
files:
myfile.txt
otherfile.txt
sub_directory3:
files:
myfile.txt
otherfile.txt
sub_directory4:
files:
myfile.txt
otherfile.txt
directory2:
sub_directory1:
files:
myfile.txt
otherfile.txt
sub_directory2:
files:
myfile.txt
otherfile.txt
sub_directory3:
files:
myfile.txt
otherfile.txt
sub_directory4:
files:
myfile.txt
otherfile.txt
我试图弄清楚(通过反复试验,因为我不是 Linux 专家)如何只对所有目录中的 myfile.txt
文件进行 gzip 压缩。由于它们在不同路径中都具有相同的文件名(没有办法解决这个问题),因此我也需要能够将文件路径保留在存档中。所以我要创建的最终 gzipped tar 文件将包含以下内容:
mytar.tar.gz
main_directory/directory1/sub_directory1/files/myfile.txt
main_directory/directory1/sub_directory2/files/myfile.txt
main_directory/directory1/sub_directory3/files/myfile.txt
main_directory/directory1/sub_directory4/files/myfile.txt
main_directory/directory2/sub_directory1/files/myfile.txt
main_directory/directory3/sub_directory2/files/myfile.txt
main_directory/directory4/sub_directory3/files/myfile.txt
main_directory/directory5/sub_directory4/files/myfile.txt
是否有一种简单的 bash
方法可以做到这一点?我想我可以编写一个 python
脚本来完成它,但这似乎有点过分了。
有人有什么建议吗?
最佳答案
这解决了另一个答案中描述的这个问题。
find main_directory/ -name "myfile.txt" | tar -czvf mytar.tar.gz -T -
关于linux - Bash - 如何归档和压缩子目录中的文件,但只能使用特定的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25468279/