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

Linux系统遍历.gz文件出现Permission denied错误解决求助

问题原因

你的报错核心是for循环的语法错误:
$()是Bash的命令替换语法,括号内的内容会被Bash当做命令尝试执行,而你实际需求是匹配该路径下的所有.fq.gz文件作为遍历列表,不需要套$(),因此Bash尝试执行匹配到的gz文件才会报权限、执行格式错误。
另外你脚本开头的shebang行也写错了,分隔符应该是斜杠/而不是井号#。

修正后的脚本

#!/bin/bash
# 可选:开启nullglob避免无匹配文件时把通配符本身当字符串处理
shopt -s nullglob
for f1 in ~/Desktop/hawkfiles17/NG*.fq.gz
do
  echo "${f1}"
done

后续处理注意事项

  • 不需要给.fq.gz压缩文件加执行权限,你只需要给你编写的脚本本身加执行权限即可:chmod u+x 你的脚本文件名.sh
  • 如果后续需要读取.gz文件内容处理,不需要解压原文件,可以直接用zcat/zgrep等工具直接操作,原.gz文件会保持原有格式不变,例如读取文件内容:zcat "${f1}"

内容的提问来源于stack exchange,提问作者Amy Houseman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:15:07