【发布时间】:2012-12-06 01:12:58
【问题描述】:
我正在使用一个 find 命令,它会产生多行结果,然后我想将这些行中的每一行通过指定的 -l 选项通过管道传输到一个 ls 命令中。
find . -maxdepth 2 -type f |<some splitting method> | ls -l
我想在一个“命令”中执行此操作并避免写入文件。
【问题讨论】:
标签: linux bash command-line
我正在使用一个 find 命令,它会产生多行结果,然后我想将这些行中的每一行通过指定的 -l 选项通过管道传输到一个 ls 命令中。
find . -maxdepth 2 -type f |<some splitting method> | ls -l
我想在一个“命令”中执行此操作并避免写入文件。
【问题讨论】:
标签: linux bash command-line
我相信这就是您正在寻找的:
find . -maxdepth 2 -type f -exec ls -l {} \;
说明:
find . -maxdepth 2 -type f: 查找最大深度为 2 的文件-exec ls -l {} \; 对于找到的每个这样的结果,运行 ls -l 就可以了; {} 指定 find 的结果将被替换到哪里。【讨论】:
典型的做法是使用-exec:
find . -maxdepth 2 -type f -exec ls -l {} \;
【讨论】:
听起来您正在寻找 xargs。例如,在典型的 Linux 系统上:
find . -maxdepth 2 -type f -print0 | xargs -0 -n1 ls -l
【讨论】: