我知道这是一个常见的错误,但我确实陷入了困境并且可以使用一些帮助。
我需要在名为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 $(find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop -type d -iname parent | xargs) -type f -name "*" > Parent_Files_TT.csv
但是我得到了同样的错误。如果有人可以帮我修改,我真的很感激。
答案 0 :(得分:2)
这部分
find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
-type d -iname parent
返回太多结果,外部命令变得太长。您可以通过不同地嵌套find
来避免这种情况:
find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
-type d -iname parent \
-exec find {} -type f \; > Parent_Files_TT.csv
答案 1 :(得分:1)
不要在查找中添加查找,而是一次性完成:
find /Volumes/COMMON-LIC-PHOTO/STUDIO-COMPLETE/ARCHIVE/Tabletop \
-ipath '*/parent/*' -type f