我正在搜索从根目录到最底部的最长文件名。
我编写了一个 C 程序来计算最长文件名的长度及其名称。
但是,我无法让 shell 将一长串文件名重定向到标准输入,以便我的程序接收它。
这是我所做的:
ls -Rp | grep -v / | grep -v "Permission denied" | ./home/user/findlongest
findlongest 已编译,我在我的一个 IDE 上检查它以确保它正常工作。到目前为止,尚未检测到运行时错误。
如何通过重定向标准输入将文件名列表放入“findlongest”代码中?
最佳答案
试试这个:
find / -type f -printf '%f\n' 2>/dev/null | /home/user/findlongest
2>/dev/null
将丢弃所有写入 stderr
的数据(您可以在其中看到“权限被拒绝”消息)。
或者使用以下命令来删除对您的应用程序的依赖(来自 here ):
find / -type f -printf '%f\n' 2>/dev/null | \
awk 'length > max_length {
max_length = length; longest_line = $0
}
END {
print length(longest_line) " " longest_line
}'
关于linux - 查找Linux中最长的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42809358/