gpt4 book ai didi

linux - 如何在查找中排除特定文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:31 25 4
gpt4 key购买 nike

假设我的目录结构是这样的

A--file1.cpp
file2.cpp
file3.cpp
file1.h
file2.h
file3.h

B--file1.cpp
file2.cpp
file3.cpp
file1.h
file2.h
file3.h

我的目标是在 A 文件夹中找到除 file1.cpp 之外的所有 cpp 文件

find A/B/-name\*.cpp 会找到所有文件,我试过 find A/B/! -name file1.cpp -name\*.cpp 这也将从 B 文件夹中排除 file1.cppfind A/B/-prune -o file1.cpp -name\*.cpp 也不起作用。正确的做法是什么?

最佳答案

-path 谓词可让您忽略特定文件或目录。

find . -path ./A/file1.cpp -prune -o -type f -name '*.cpp' -print

测试如下:

tempdir=$(mktemp -d "$TMPDIR"/test.d.XXXXXX)
cd "$tempdir" && {
mkdir -p A B
touch {A,B}/file{1,2,3}.{cpp,h}
find A B -path A/file1.cpp -prune -o -type f -name '*.cpp' -print
rm -rf -- "$tempdir"
}

...发射输出:

A/file2.cpp
A/file3.cpp
B/file1.cpp
B/file2.cpp
B/file3.cpp

关于linux - 如何在查找中排除特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42498350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com