我正在尝试递归解压大量包含 .tar 文件的目录,但不创建任何新的子目录。
我成功地能够使用此命令一次执行一个操作
gtar -xf *.tar --strip-components 2
但是,我必须位于子目录中才能使其正常工作,并且我想从上面的目录中集体执行此操作。
这是我的目录结构:
/top_directory
/sub1
tarfile1.tar
/sub2
tarfile1.tar
/sub3
tarfile1.tar
/sub4
tarfile1.tar
因此,我不能将它们全部移到一个目录中,然后解压它们,因为它们都被称为tarfile1.tar
,因此它们需要保留在其子目录中。
但是,我不希望他们创建更多子目录;我只想要它们包含的文件。
我想要实现的目标:
/top_directory
/sub1
tarfile1.tar
file1.txt
file2.txt
file3.txt
/sub2
tarfile1.tar
file1.txt
file2.txt
/sub3
tarfile1.tar
file1.txt
file2.txt
file3.txt
/sub4
tarfile1.tar
file1.txt
file2.txt
我想我已经接近这个命令了:
for file in *; do gtar -xf ${file} --strip-components 2; done
但它返回此错误:gtar:这看起来不像 tar 存档
当我尝试时
for file in *.tar; do gtar -xf ${file} --strip-components 2; done
我犯了同样的错误。
如何完成解压子目录中的所有文件,同时将解压的文件保留在这些目录中?
我在Solaris11上。