Linux中巧妙清理tar解压后的文件
本文于 12 天前发布,最后更新于 10 天前

一、场景模拟

文件夹中有两个压缩包danshu.tar和shuangshu.tar

[root@primary qmql]# ll
total 24
-rw-r--r-- 1 root root 10240 Apr 24 15:34 danshu.tar
-rw-r--r-- 1 root root 10240 Apr 24 15:35 shuangshu.tar

先后解压两个压缩包

[root@primary qmql]# tar -xf danshu.tar 
[root@primary qmql]# ll
total 24
-rw-r--r-- 1 root root 10240 Apr 24 15:34 danshu.tar
-rw-r--r-- 1 root root     0 Apr 24 15:31 file1
-rw-r--r-- 1 root root     0 Apr 24 15:31 file3
-rw-r--r-- 1 root root     0 Apr 24 15:32 file5
-rw-r--r-- 1 root root     0 Apr 24 15:32 file7
-rw-r--r-- 1 root root     0 Apr 24 15:32 file9
-rw-r--r-- 1 root root 10240 Apr 24 15:35 shuangshu.tar
[root@primary qmql]# tar -xf shuangshu.tar 
[root@primary qmql]# ll
total 24
-rw-r--r-- 1 root root 10240 Apr 24 15:34 danshu.tar
-rw-r--r-- 1 root root     0 Apr 24 15:31 file1
-rw-r--r-- 1 root root     0 Apr 24 15:31 file2
-rw-r--r-- 1 root root     0 Apr 24 15:31 file3
-rw-r--r-- 1 root root     0 Apr 24 15:32 file4
-rw-r--r-- 1 root root     0 Apr 24 15:32 file5
-rw-r--r-- 1 root root     0 Apr 24 15:32 file6
-rw-r--r-- 1 root root     0 Apr 24 15:32 file7
-rw-r--r-- 1 root root     0 Apr 24 15:32 file8
-rw-r--r-- 1 root root     0 Apr 24 15:32 file9
-rw-r--r-- 1 root root 10240 Apr 24 15:35 shuangshu.tar

那么问题来了:将文件夹中的两个压缩包分别解压后,如需删除来自于danshu.tar包中的所有文件,同时保留来自于shuangshu.tar包的文件,有什么快速的方法,如何快速删除属于特定归档文件的内容,同时保留其他文件呢?

二、删除方法

[root@primary qmql]# tar -tvf danshu.tar 
-rw-r--r-- root/root         0 2024-04-24 15:31 file1
-rw-r--r-- root/root         0 2024-04-24 15:31 file3
-rw-r--r-- root/root         0 2024-04-24 15:32 file5
-rw-r--r-- root/root         0 2024-04-24 15:32 file7
-rw-r--r-- root/root         0 2024-04-24 15:32 file9
[root@primary qmql]# tar -tvf shuangshu.tar 
-rw-r--r-- root/root         0 2024-04-24 15:31 file2
-rw-r--r-- root/root         0 2024-04-24 15:32 file4
-rw-r--r-- root/root         0 2024-04-24 15:32 file6
-rw-r--r-- root/root         0 2024-04-24 15:32 file8

上述命令可以列出缩包中的文件,所以方法是

[root@primary qmql]# tar -tf danshu.tar | xargs rm -rf
[root@primary qmql]# ls
danshu.tar  file2  file4  file6  file8  shuangshu.tar

使用 tar -tf 列出danshu.tar包中的所有文件,再通过管道符传递给xargs命令转换为标准输入,最后传递给rm -rf命令执行删除。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇