可否有这样的经历,在工作环境下,解压了一个超大、文件超多的压缩包,比如,big-bag.tar.gz,解压的一瞬间,你猛然发现,忘记新建一个文件夹了,解压后的文件和原有的文件、文件夹混在一起了,是不是很崩溃,😦
可是,不要忘记,你现在使用的是Linux系统,没有Linux命令接解决不了的问题,一个不行,用两个。
先说解决方案:
$ tar -jxvf big-bag.tar.gz #这是手残解压的命令
$ tar -tf big-bag.tar.gz | xargs rm -rf #这是删除解压后的文件的命令
没错,就是这么简单!
说下原理,
- tar
- tf:这是tar的选项组合,-t用于打印压缩包中的文件,-f表示以档案的方式访问文件。
- xargs
这个命令厉害了,它以标准输入为参数,构建和执行命令,比如:
$ echo -l | xargs ls # xargs以-l作为参数,执行ls,等于执行ls -l
- 所以,删除解压后的文件的原理就是:以tar -tf 列出big-bag.tar.gz中的文件列表,然后,使用rm删除列表中的每个文件!
这就是,类Unix系统命令独特的魅力,命令+管道=组合威力:一个命令只做简单的一件事,做到极致,然后,通过管道"|",将多个命令组合起来,就可以完成十分复杂的功能。真是有趣🤔
在Linux环境下误将大文件压缩包直接解压导致文件混杂?不用担心,利用Linux命令可以轻松解决。通过`tar -tf`列出压缩包内容,再结合`xargs rm -rf`删除解压文件,即可恢复秩序。这个例子展示了Linux命令的组合威力,一个命令专注于一项任务,通过管道连接形成强大的功能。了解这些基础命令的组合使用,能提升Linux系统的操作效率。
3633

被折叠的 条评论
为什么被折叠?



