【发布时间】:2016-05-06 17:00:45
【问题描述】:
我有一个两部分的问题:
第 1 部分(终端)- 我在 Mac 环境中工作,该环境存档到基于 Windows 的系统,因此我需要检测 255 的路径长度,以便在存档之前更改这些文件。我在 StackOverflow 上看到了很多关于文件名长度的解决方案,但我需要绝对路径长度。我偶然发现了这个脚本,它很接近:
sudo find . -name \* -type f | perl -ne 's/(.*)/print length($1), " $1\n" if (length($1)>254)/e' | sort -n
问题是我没有看到绝对路径长度,我只看到当前目录的路径长度。有没有一种方法可以在当前目录中递归搜索文件,同时仍然显示所有列出文件的绝对路径?
第 2 部分 (Applescript) - 一旦第 1 部分在终端中正常工作,我希望将过程自动化一点。最好我想创建一个Applescript,当文件夹在Finder中突出显示时,我可以运行命令,终端将弹出并运行命令和列表。这是我目前所拥有的:
tell application "Finder" to set theSel to selection
tell application "Terminal"
set theFol to POSIX path of ((item 1 of theSel) as text)
if (count of windows) is not 0 then
set shell to do script "cd " & quoted form of theFol in window 1
do script "find . -name \\* -type f | perl -ne 's/(.*)/print length($1), \" $1\\n\" if (length($1)>254)/e''" in shell
end if
activate
end tell
问题是,当我运行这个 applescript 时,命令开始执行动作,但随后卡住了,我看到的只是
>
我必须按 ctrl+c 才能继续使用终端窗口。
有谁知道我在终端命令中缺少什么标志?对于突出显示的目录,我也愿意采用完全不同的方法来检索和列出 255 个字符或更多字符的文件的字符数和绝对路径。
【问题讨论】:
-
你需要使用终端吗?这样做的目的是什么?您需要的真实结果是什么?
标签: terminal find applescript posix