我正在尝试调试 Backblaze 备份工具的一个问题,我需要找到某个路径名很长的文件。我可以使用什么终端命令来查找具有最长完整路径名的文件或列出前 10 个长名称文件之类的内容?
答案1
以下命令可以完成这项工作:-
find /DirHead|while read -r f; do echo $(wc -c <<<$f): $f; done|sort -n|tail -n 1
根据 Gordon Davisson 的评论,有一个更简洁的替代方案:-
find /DirHead | awk '{print length($0), $0}' | sort -n | tail -n 1
您可以设置/DirHead
为/
,但这会非常慢,所以如果您知道这条长路径可能位于何处,使用它会加快速度。
这不会遵循符号链接:如果您想这样做,您将需要添加选项find
。
对于每个文件,wc -c
从标准输入计算文件名的字节数,并将此计数与文件名一起输出;数字排序的最后一行将是最长的,或者tail -n 10
列出最长的 10 个。
我在 Ubuntu 上测试了这一点,无法轻松访问 OS/X。