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

SSH执行ls相关命令存输出到文件时如何忽略错误不中断

问题解决方案

1. 现有命令修复版

你遇到的进程终止核心原因是命令执行产生的标准错误没有被过滤,且xargs遇到无效输入会主动终止,修改后可用的命令如下:

find /downloads/ -type d ! -writable -print0 2>/dev/null | xargs -0 -r -I{.} find {.} -maxdepth 1 -type f -print0 2>/dev/null | xargs -0 -r -I% ls -l % 2>/dev/null > myfile.txt

改动说明:

  • 每个子命令末尾加2>/dev/null,直接丢弃所有错误输出,错误不会触发进程终止
  • xargs添加-r参数,前序管道无输出时不会执行后续命令,避免空输入报错
  • 所有管道传递的文件名统一用\0分隔,兼容含空格、特殊字符的文件名,减少无效报错

2. 更优实现方案(推荐)

不需要多层管道调用xargs和ls,find本身即可完成所有需求,执行效率更高、报错概率更低:

find /downloads/ -type f -execdir test ! -writable . \; -ls 2>/dev/null > myfile.txt

这个命令的逻辑完全匹配你的需求:直接查找所有所在目录无写入权限的普通文件,用内置-ls参数输出和ls -l完全一致的格式,所有错误直接丢弃不会终止执行。

如果后续要用Python统计总大小,可以直接输出文件字节数,省去解析ls长格式的步骤:

find /downloads/ -type f -execdir test ! -writable . \; -printf "%s\n" 2>/dev/null > filesizes.txt

Python读取该文件时直接逐行转整数求和即可,逻辑更简单不易出错。

内容的提问来源于stack exchange,提问作者Harshit Jindal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:45:01