好的,要清楚,这是一项学校作业,我不需要整个代码。问题是这样的:我用
set subory = ("$subory:q" `sh -c "find '$cesta' -type f 2> /dev/null"`)
用变量subory
填充指定路径中的所有普通文件。然后我有一个foreach,我计算目录中所有文件的行,这不是问题。问题是,当测试此脚本时,一些大目录用作路径。会发生什么是脚本没有完成,但会给出错误消息word too long
。这个词是subory
。这是一个真正的问题,因为$cesta
可以是一长串路径的元素。我试过了,但我无法解决这个问题。有任何想法吗?我有点失落。
编辑:要清楚,任务是为每个目录分配一个数字,表示所有文件的总行数,然后选择编号最大的目录。
答案 0 :(得分:0)
您需要重新组织代码。例如:
find "$cesta" -type f -execdir wc -l {} +
这将对找到的所有文件运行wc
,而不会遇到命令行长度限制,“无效”字符,如文件名中的换行符等。并且您不需要生成新的shell这样做。