首页 > 解决方案 > 查找以“go”开头的目录,但不查找名称包含“work”或“play”的目录

问题描述

我写了一个不太好用的脚本,可以使用一些指针。

find /mnt/{bob1, bob2, bob3, john1, john2, john3, tony1, tony2, tony3}*/go* -type f -not -path "*/*work*/*" -not -path "*/*play*/*" \( -iname "*.ado" -o -iname "*.do" -o -iname "*.pl" -o -iname "*.py" -o -iname "*.R" -o -iname "*.include" -o -iname "*.sas" -o -iname "*.dct" \) >> /mnt/home/found_programs.txt

只是为了更容易阅读:

find /mnt/{bob1, bob2, bob3, john1, john2, john3, tony1, tony2, tony3}*/go* 
    -type f 
    -not -path "*/*work*/*" 
    -not -path "*/*play*/*" 
    \(   -iname "*.ado" 
      -o -iname "*.do" 
      -o -iname "*.pl" 
      -o -iname "*.py" 
      -o -iname "*.R" 
      -o -iname "*.include" 
      -o -iname "*.sas" 
      -o -iname "*.dct" \) >> /mnt/home/found_programs.txt

我需要它来编写所有具有上述扩展名的文件的名称,这些文件在以“go”开头的任何目录中列出,但目录名称中不能有“work”或“play”。试图为工作做这个,但我不能让它工作。

由于某些原因,实际路径和文件名已更改

标签: linuxbash

解决方案


推荐阅读