查找并列出所有子文件夹,但没有别的

时间:2013-11-04 17:28:36

标签: shell applescript

我正在尝试创建一个循环脚本,它将获取父文件夹并查找所有子文件夹。这样我就可以一次拿一个并在它们上运行第二个脚本。

如果我正在寻找文本文件,这将有效。我想尝试使用它来查找文件夹,但不知道如何在这个方向上找到任何东西。

-- Search for Subfolder
set ParentPath to choose folder
set allFiles to (do shell script "find " & quoted form of POSIX path of ParentPath & " -iname \"*.eps\""))


-- Process files
repeat with nFile in allFiles
    my runScript(nFile)
end repeat

理论上就是这样。

-- Search for Subfolder
set ParentPath to choose folder
set allFiles to all folders inside ParentPath


-- Process files
repeat with nFile in allFiles
    my runScript(nFile)
end repeat

谢谢!

4 个答案:

答案 0 :(得分:0)

用bash,你会说:

shopt -s globstar nullglob
# the trailing slash below restricts matches to directories.
for dir in **/; do
    some command with "$dir"
done

以递归方式查找当前目录下的所有目录。如果您只查找当前目录的子目录:for dir in */

答案 1 :(得分:0)

find <dirname> -type d > subdirlist

您也不需要为find指定深度级别;它将一直持续到最后。实际上,如果你不希望它走得太远,你只能指定一个最大深度。

您也可以使用find循环作为处理脚本的基础。举个例子: -

find *.mp3 d.mp3 -type f | while read mp3s
do 
echo $mp3s
<more commands>
done

答案 2 :(得分:0)

试试下面的内容:

find ./ -type d 

答案 3 :(得分:0)

发现这很有效。

set ParentPath to (choose folder) as string
set FolderList to {}
tell application "System Events"
    set ItemList to disk items of folder ParentPath
    repeat with CurrentItem in ItemList
        if (class of CurrentItem) = folder then
            set end of FolderList to ((path of CurrentItem) as alias)
        end if
    end repeat
end tell