Alg*_*tic 3 linux bash command-line tar
我有一个包含大约 1900 万个文件的 tar 文件(没有文件夹)
0000107b869682826003b04a40e6394.txt
00029237482s8923789423ud8923892.txt
2c002y8378723887292377a79237649.txt
f598238209237408238742308374038.txt
Run Code Online (Sandbox Code Playgroud)
我如何解压所有文件,使它们出现在以文件的前四个字符命名的子目录中。因此,对于上面的例子中,它会创建0000,2c02以及f599目录和每个将具有以下文件。
0000\0000107b869682826003b04a40e6394.txt
0002\00029237482s8923789423ud8923892.txt
2c02\2c002y8378723887292377a79237649.txt
f598\f598238209237408238742308374038.txt
Run Code Online (Sandbox Code Playgroud)
我已经尝试创建一个脚本来遍历 tar 文件中的文件,创建一个目录并从 tar 中提取该文件并将其放入目录中。这适用于少量文件,但是当 tar 有数百万个时,提取需要很长时间。
使用 GNUtar及其s命令,其语法来自sed. 我从 切换s///到s|||。
tar -xvf file.tar --transform 's|\(....\).*|\1/&|' --show-transformed-names
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |