Linux 在tar归档中移动和重命名文件
我有一个名为MyFiles.tar的tar存档,其中包含一个名为Directory的文件夹。在文件夹中,我有40个或更多文件,名为:Linux 在tar归档中移动和重命名文件,linux,unix,tar,Linux,Unix,Tar,我有一个名为MyFiles.tar的tar存档,其中包含一个名为Directory的文件夹。在文件夹中,我有40个或更多文件,名为: MyFile_01.txt.gz MyFile_02.txt.gz MyFile_03.txt.gz MyFile_04.txt.gz MyFile_05.txt.gz... 例如: tar -tf MyFiles.tar tar -tf MyFiles.tar 收益率: Directory/MyFile_01.txt.gz Directory/My
MyFile_01.txt.gz
MyFile_02.txt.gz
MyFile_03.txt.gz
MyFile_04.txt.gz
MyFile_05.txt.gz...
例如:
tar -tf MyFiles.tar
tar -tf MyFiles.tar
收益率:
Directory/MyFile_01.txt.gz
Directory/MyFile_02.txt.gz
Directory/MyFile_03.txt.gz
Directory/MyFile_04.txt.gz
Directory/MyFile_05.txt.gz...
Sample_01.txt.gz
Sample_02.txt.gz
Sample_03.txt.gz
Sample_04.txt.gz
Sample_05.txt.gz...
我想删除目录文件夹并重命名文件,以便
收益率:
Directory/MyFile_01.txt.gz
Directory/MyFile_02.txt.gz
Directory/MyFile_03.txt.gz
Directory/MyFile_04.txt.gz
Directory/MyFile_05.txt.gz...
Sample_01.txt.gz
Sample_02.txt.gz
Sample_03.txt.gz
Sample_04.txt.gz
Sample_05.txt.gz...
正如建议的那样,一行:
tar xf MyFiles.tar; cd Directory; for n in MyFile_[0-9]*.txt.gz ;do [ -f "$n" ] && mv -f "$n" $(echo $n|sed -e s/MyFile/Sample/); done; tar cf ../Sample.tar Sample_[0-9]*.txt.gz; cd ..; rm -rf Directory
解压缩,将cd放入目录中,然后archive@user3791372有没有一种方法可以在一行中完成?