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