Bash /usr/bin/find:参数列表太长

Bash /usr/bin/find:参数列表太长,bash,Bash,我知道这是一个常见的错误,但我真的卡住了,需要一些帮助 我需要在名为Parent的子目录中创建一个Excel工作表,该子目录位于根文件夹Tabletop中。这就是我所拥有的: find $(find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop -type d -iname parent | xargs) -type f > Parent_Files_TT.csv 它搜索名为Parent的文件夹,然后将完整文件路径复

我知道这是一个常见的错误,但我真的卡住了,需要一些帮助

我需要在名为
Parent
的子目录中创建一个Excel工作表,该子目录位于根文件夹
Tabletop
中。这就是我所拥有的:

find $(find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop -type d -iname parent | xargs) -type f > Parent_Files_TT.csv
它搜索名为
Parent
的文件夹,然后将完整文件路径复制到Excel。这在我拥有的其他较小的文件夹上也有效,但是
Tabletop
中有数十万个文件,我得到了错误:

/usr/bin/find:参数列表太长

我已尝试将其修改为在查找文件时使用
xargs

find $(find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop -type d -iname parent | xargs) -type f -print0 | xargs > Parent_Files_TT.csv
并且还尝试了
“*”

但我也犯了同样的错误。如果有人能帮我修改,我将非常感激。

这部分

find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
    -type d -iname parent
返回的结果太多,外部命令变得太长。您可以通过以不同方式嵌套
find
s来避免这种情况:

find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
    -type d -iname parent \
    -exec find {} -type f \; > Parent_Files_TT.csv
这部分

find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
    -type d -iname parent
返回的结果太多,外部命令变得太长。您可以通过以不同方式嵌套
find
s来避免这种情况:

find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
    -type d -iname parent \
    -exec find {} -type f \; > Parent_Files_TT.csv

与其在您的查找中添加查找,不如一次完成:

find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
    -ipath '*/parent/*' -type f

与其在您的查找中添加查找,不如一次完成:

find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
    -ipath '*/parent/*' -type f

您不需要将
xargs-0
find-print0
?通过添加-type f-print0 | xargs-0,我确信这会起作用,但不幸的是,我仍然得到相同的错误。我认为
查找$(…)
部分是这里的问题。你在插一个巨大的东西。尝试重新构造此结构,以某种方式将第一次查找的结果导入第二次查找。您不需要将
xargs-0
find-print0
?通过添加-type f-print0 | xargs-0,我确信这会起作用,但不幸的是,我仍然得到相同的错误。我认为
查找$(…)
部分是这里的问题。你在插一个巨大的东西。试着重新构造它,以某种方式将第一次发现的结果导入第二次发现。是的,这很有效!非常感谢。我知道可能是代码,但不知道如何正确区分。是的,这很有效!非常感谢。我知道可能是代码,但不知道如何正确地将其分离出来。