使用find排除所有子目录的文件

时间:2019-08-24 17:39:42

标签: bash unix

我有这样的目录结构

data
|___
    |
    abc
     |____file0.jpg
     |____file1.jpg
     |____file2.jpg
    def
     |____file0.jpg
     |____file1.jpg
     |____file2.jpg
    ghi
     |____file0.jpg
     |____file1.jpg
     |____file2.jpg
    jkl
     |____file0.jpg
     |____file1.jpg
     |____file2.jpg

数据目录内的所有文件夹中都有一个file0,file1,file2,。我尝试并成功地将其合并到所有目录的pdf文件中。但我希望从所有子目录中忽略file0,然后合并为pdf。总之,我希望将file1,file2合并为pdf。

这是我的命令:

for dir in data/*; do 
  cd "$dir"
  find . -type f -name \*0.jpg -not -path | convert ./*.jpg "$(basename "$dir")".pdf
  cd - 
done

2 个答案:

答案 0 :(得分:1)

您甚至不需要find,只需要排除file0.jpg的全局即可。这应该起作用:

for dir in data/*; do
    (
    cd -- "$dir" || continue
    convert file[!0].jpg "$(basename "$dir")".pdf
    )
done

在这里,我还在cd上添加了一些保护措施,例如子外壳,以避免退出。

答案 1 :(得分:0)

要“查找”,请尝试:

.container1{
    text-align: center;
    height: 600px;
    background-image: url("../img/Untitled\ design.png"),
    linear-gradient(black,white,grey);
    background-color:grey;
    background-blend-mode: multiply;
    background-size: cover;
}