You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Shell中执行`zip *`命令的结果及文件定位删除的技术问询

执行zip *后找不到压缩文件?教你定位并删除它!

嘿,我太懂这种手滑敲错命令的崩溃了!别慌,我来帮你搞清楚这事儿~

为啥找不到带.zip后缀的文件?

当你在shell里敲了zip *,shell会把*展开成当前目录下所有文件/文件夹的列表(按字母排序)。而zip命令的语法是zip [选项] 压缩包名 要压缩的内容,所以列表里的第一个文件/文件夹的名字就被当成了压缩包的文件名——而且zip不会自动给它加.zip后缀!更坑的是,这个原本的文件会被直接覆盖成压缩包,所以你自然找不到带.zip的文件啦。

怎么找到这个“伪装”的压缩包?

用file命令可以检测每个文件的类型,它能轻松识别出zip格式的文件:

file *

执行后,找输出里带有Zip archive data的那一行,对应的文件名就是那个被改成压缩包的文件。比如你可能会看到这样的输出:

a.txt: Zip archive data, at least v2.0 to extract
b.jpg: JPEG image data, JFIF standard 1.01
docs: directory

那这里的a.txt就是你要找的“失踪”的压缩包。

怎么删除它?

直接用rm命令删掉就行,比如对应上面的例子:

rm a.txt

⚠️ 重要提醒:原来的a.txt已经被压缩包覆盖了,没法恢复了,除非你之前有备份哦。

下次别再踩坑啦!

以后压缩所有文件的时候,记得明确指定压缩包的名字,比如:

# 压缩当前目录所有文件到archive.zip
zip archive.zip *

# 如果要连子目录一起递归压缩,加上-r参数
zip -r archive.zip .

备注:内容来源于stack exchange,提问作者Yuandong Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 07:47:58