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

Hig*_*lar 10 find text-processing filenames

我正在尝试从 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
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 20

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

find -regextype posix-extended -regex '.{257,}'
Run Code Online (Sandbox Code Playgroud)

(初始 257 个帐户./。)

  • 在 Mac 上,您可以使用内置的 `find -E。-regex ".{255,}"` 列出相对路径 >= 253 个字符。255 是内置 find 的 RegEx 引擎支持的最大重复计数。 (2认同)

Hig*_*lar 8

我找到了两种方法:

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

我第一次尝试(find . | perl -pe 'print length;' | sort -rn | less)在命令中使用 perl 报告了一个太高的字符数,因为我认为它的计数中包含一个换行符?它可能比我上面的方法更干净,但我得到了我需要的结果。