用于查找对于刻录到 DVD 来说太长的文件/路径长度的命令?

用于查找对于刻录到 DVD 来说太长的文件/路径长度的命令?

我尝试从 Windows 刻录 DVD,但失败,因为完整路径名长度超出了 255 个字符之类的限制。

我们的文件存储在 Debian Linux 中(Windows 使用 samba 访问),因此为了避免运行一些狡猾的 Windows 应用程序来查找长路径名,我更愿意使用 Linux 命令来查找它们。

我可以运行什么命令来输出给定文件夹的相对路径和文件名列表,并按每个文件夹的长度排序(按降序排列)?

输出应如下所示:

92 ./site/testapidocs/wjhk/jupload2/policies/class-use/DefaultUploadPolicy_WithoutAlertBox.ht
83 ./site/testapidocs/wjhk/jupload2/upload/class-use/PacketConstructionThreadTest.html
76 ./site/apidocs/wjhk/jupload2/upload/helper/class-use/ProgressBarManager.html
52 ./site/xref/wjhk/jupload2/gui/JUploadFileFilter.html
31 ./site/samples.java/applet.jnlp
17 ./site/index.html

答案1

使用 GNU find(在 Linux 或 Cygwin 上),您可以查找相对路径长度超过 255 个字符的文件:

find -regextype posix-extended -regex '.{257,}'

(初始 257 个帐户./。)

答案2

我发现有两种方法可以做到这一点:

find . | perl -pe 'print (length($_)-1)." ";' | sort -rn | less
find . | awk '{print length,$0}' | sort -rn | less

我的第一次尝试(寻找 。 | perl -pe '打印长度;' |排序-rn |较少的)在使用 perl 的命令中报告的字符计数太高了 1,因为我认为它的计数中包含换行符?它可能比我上面的方法更干净,但我得到了我需要的结果。

相关内容