我(通常)有一个存档,里面有 10 个左右的文件夹,每个文件夹包含 1 或 2 个文件。我想要所有这些文件,但只放在 1 个文件夹中,而不是 10 个文件夹中。提取存档会给我 10 个文件夹,这意味着我必须手动进入每个文件夹以剪切和粘贴每个文件夹中的文件。有没有办法从所有文件夹中提取所有文件?
Archive Manager 和 Xarchiver 都保留了目录,我找不到更改它的方法。我在 Google 上也没有找到答案,可能是因为我不知道如何轻松描述它。
答案1
你可以这样做tar
以下命令行对我有用(我用两级子目录对其进行了测试)。
tar -xv --transform='s#.*/##' -f tarfile
目录也将被提取到顶层;我希望你能应付这一点。
测试示例
‘放入 tarfile’ 的目录
$ find
.
./1
./1/hello
./1/3
./1/3/gday
./hej
./2
./2/4
./2/4/bye
./2/hi
tar -cvf ../tarfile .
从 tarfile 中提取
$ tar -xv --transform='s#.*/##' -f ../tarfile
./
./1/
./1/hello
./1/3/
./1/3/gday
./hej
./2/
./2/4/
./2/4/bye
./2/hi
列出文件
$ ls -1
1
2
3
4
bye
gday
hej
hello
hi
如果你创建 tarfile 时,您可以剥离/转换文件名(而提取文件时无需执行此操作)。
tar -cv --transform='s#.*/##' -f ../tarfile .
$ tar -xvf ../tarfile
./
1/
hello
3/
gday
hej
2/
4/
bye
hi
$ ls -1
1
2
3
4
bye
gday
hej
hello
hi