【问题标题】:pipe a command after splitting the returned value拆分返回值后管道命令
【发布时间】:2012-12-06 01:12:58
【问题描述】:

我正在使用一个 find 命令,它会产生多行结果,然后我想将这些行中的每一行通过指定的 -l 选项通过管道传输到一个 ls 命令中。

find . -maxdepth 2  -type f |<some splitting method> | ls -l

我想在一个“命令”中执行此操作并避免写入文件。

【问题讨论】:

    标签: linux bash command-line


    【解决方案1】:

    我相信这就是您正在寻找的:

    find . -maxdepth 2  -type f -exec ls -l {} \;
    

    说明:

    • find . -maxdepth 2 -type f: 查找最大深度为 2 的文件
    • -exec ls -l {} \; 对于找到的每个这样的结果,运行 ls -l 就可以了; {} 指定 find 的结果将被替换到哪里。

    【讨论】:

      【解决方案2】:

      典型的做法是使用-exec

      find . -maxdepth 2  -type f -exec ls -l {} \;
      

      【讨论】:

        【解决方案3】:

        听起来您正在寻找 xargs。例如,在典型的 Linux 系统上:

        find . -maxdepth 2  -type f -print0 | xargs -0 -n1 ls -l
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-02
          相关资源
          最近更新 更多