我在一次代码面试中失败了,但是我还是想理解它。
从根开始,我应该首先获取所有html文件,然后通过一个命令将它们压缩。
失败后,我可以自己这样做:
find . -name "*.js" | xargs tar -cvf tar.tar
我的问题是,它模仿了系统的整个树形结构。我想要的解决方案是,如果要在具有以下条件的文件夹中运行,则将所有文件置于同一级别:
-
| a.js
| b.html
| c.js
|_ folder
| g.html
最终生成的tar最终有一个名为folder
的文件夹,其中包含g.html。从根目录运行时,这看起来很糟糕
答案 0 :(得分:2)
root@i5-cpu:~/work_area/php# tree d1
d1
├── d2
│ ├── f2_1.js
│ └── f2_2.js
├── f1_1.js
└── f1_2.js
1 directory, 4 files
root@i5-cpu:~/work_area/php# find . -name "\*.js" | xargs tar -cvf tar.tar --transform='s,.*/,,'
./d1/d2/f2_1.js
./d1/d2/f2_2.js
./d1/f1_1.js
./d1/f1_2.js
root@i5-cpu:~/work_area/php# tar -tvf tar.tar
-rw-rw-rw- root/root 0 2019-01-17 01:12 f2_1.js
-rw-rw-rw- root/root 0 2019-01-17 01:12 f2_2.js
-rw-rw-rw- root/root 0 2019-01-17 01:11 f1_1.js
-rw-rw-rw- root/root 0 2019-01-17 01:11 f1_2.js
检查此页面https://www.gnu.org/software/tar/manual/html_section/tar_51.html -transform
的示例