bash find -print剪切出结果了吗?

问题描述 投票:0回答:1

编辑:我缩小了问题的范围,并更改标题以反映该问题。

我无法理解为什么find-print截取了一些结果。

在非打印示例中,它按预期显示。当我们添加-print选项时,它会切出许多结果。在这种情况下,似乎剪切的结果在build文件夹中也是src

print

$ find . -type f -name "*.rs" -or -name "*.dylib"  

./target/release/deps/libpaste_impl-f7b2dfa71f5079c3.dylib
./target/release/deps/libderivative-82fe3bf231ffd983.dylib
./target/release/deps/libproc_macro_hack-a11693f905f89c54.dylib
./target/release/deps/libnum_derive-8dd64bf06977ab17.dylib
./target/release/deps/liblewton-7f74c0936a55669b.dylib
./target/release/build/gfx_gl-9371e5933c9b30cd/out/gl_bindings.rs
./target/release/build/glutin-949d080876b75405/out/test_gl_bindings.rs
./target/release/build/glutin-949d080876b75405/out/gl_bindings.rs
./target/release/build/clang-sys-5a62f89d3a7aac29/out/dynamic.rs
./target/release/build/clang-sys-5a62f89d3a7aac29/out/common.rs
./target/release/build/bindgen-90310930123f8d37/out/tests.rs
./target/release/build/khronos_api-6a83e1455caf2a52/out/webgl_exts.rs
./target/release/build/cgmath-2f7f8d69317ede14/out/swizzle_operator_macro.rs
./target/release/build/coreaudio-sys-102943d1a92d8237/out/coreaudio.rs
./target/release/build/gleam-53db59dff8c0c2d5/out/gl_and_gles_bindings.rs
./target/release/build/gleam-53db59dff8c0c2d5/out/gles_bindings.rs
./target/release/build/gleam-53db59dff8c0c2d5/out/gl_bindings.rs
./target/release/build/typenum-fa3bdd92a2254aff/out/consts.rs
./target/release/build/typenum-fa3bdd92a2254aff/out/tests.rs
./target/release/build/typenum-fa3bdd92a2254aff/out/op.rs
./target/release/build/khronos_api-097c24980964af45/out/webgl_exts.rs
./target/release/build/three-e70ffd55e3adc8b9/out/data.rs
./target/debug/deps/libderivative-2f106744ef2c3322.dylib.dSYM/Contents/Resources/DWARF/libderivative-2f106744ef2c3322.dylib
./target/debug/deps/libnum_derive-69c598476fa9ab31.dylib.dSYM/Contents/Resources/DWARF/libnum_derive-69c598476fa9ab31.dylib
./target/debug/deps/libpaste_impl-a70f0a4520e10125.dylib.dSYM/Contents/Resources/DWARF/libpaste_impl-a70f0a4520e10125.dylib
./target/debug/deps/liblewton-502bad4119a8f69a.dylib.dSYM/Contents/Resources/DWARF/liblewton-502bad4119a8f69a.dylib
./target/debug/deps/libproc_macro_hack-55f7753a4ce25bd1.dylib.dSYM/Contents/Resources/DWARF/libproc_macro_hack-55f7753a4ce25bd1.dylib
./target/debug/deps/libproc_macro_hack-55f7753a4ce25bd1.dylib
./target/debug/deps/libpaste_impl-a70f0a4520e10125.dylib
./target/debug/deps/libderivative-2f106744ef2c3322.dylib
./target/debug/deps/libnum_derive-69c598476fa9ab31.dylib
./target/debug/deps/liblewton-502bad4119a8f69a.dylib
./target/debug/build/clang-sys-8c62fd28e328b848/out/dynamic.rs
./target/debug/build/clang-sys-8c62fd28e328b848/out/common.rs
./target/debug/build/khronos_api-d97fe936539cf92d/out/webgl_exts.rs
./target/debug/build/khronos_api-f0e964efb9ead6fb/out/webgl_exts.rs
./target/debug/build/bindgen-e9d8da9bd8e8a49e/out/tests.rs
./target/debug/build/three-f0ac8127d3dafbd5/out/data.rs
./target/debug/build/typenum-0cccc5396cc94b61/out/consts.rs
./target/debug/build/typenum-0cccc5396cc94b61/out/tests.rs
./target/debug/build/typenum-0cccc5396cc94b61/out/op.rs
./target/debug/build/coreaudio-sys-6fcf2f1dc6932dd6/out/coreaudio.rs
./target/debug/build/cgmath-b8a84179fd24b352/out/swizzle_operator_macro.rs
./target/debug/build/gleam-bd168af6fddd9da9/out/gl_and_gles_bindings.rs
./target/debug/build/gleam-bd168af6fddd9da9/out/gles_bindings.rs
./target/debug/build/gleam-bd168af6fddd9da9/out/gl_bindings.rs
./target/debug/build/gfx_gl-a69ffadf539b9028/out/gl_bindings.rs
./target/debug/build/glutin-a350d8c7a6ce351c/out/test_gl_bindings.rs
./target/debug/build/glutin-a350d8c7a6ce351c/out/gl_bindings.rs
./benches/my_benchmark.rs
./src/lib.rs
./src/boid.rs
./src/main.rs

带有print

$ find . -type f -name "*.rs" -or -name "*.dylib" -print

./target/release/deps/libpaste_impl-f7b2dfa71f5079c3.dylib
./target/release/deps/libderivative-82fe3bf231ffd983.dylib
./target/release/deps/libproc_macro_hack-a11693f905f89c54.dylib
./target/release/deps/libnum_derive-8dd64bf06977ab17.dylib
./target/release/deps/liblewton-7f74c0936a55669b.dylib
./target/debug/deps/libderivative-2f106744ef2c3322.dylib.dSYM/Contents/Resources/DWARF/libderivative-2f106744ef2c3322.dylib
./target/debug/deps/libnum_derive-69c598476fa9ab31.dylib.dSYM/Contents/Resources/DWARF/libnum_derive-69c598476fa9ab31.dylib
./target/debug/deps/libpaste_impl-a70f0a4520e10125.dylib.dSYM/Contents/Resources/DWARF/libpaste_impl-a70f0a4520e10125.dylib
./target/debug/deps/liblewton-502bad4119a8f69a.dylib.dSYM/Contents/Resources/DWARF/liblewton-502bad4119a8f69a.dylib
./target/debug/deps/libproc_macro_hack-55f7753a4ce25bd1.dylib.dSYM/Contents/Resources/DWARF/libproc_macro_hack-55f7753a4ce25bd1.dylib
./target/debug/deps/libproc_macro_hack-55f7753a4ce25bd1.dylib
./target/debug/deps/libpaste_impl-a70f0a4520e10125.dylib
./target/debug/deps/libderivative-2f106744ef2c3322.dylib
./target/debug/deps/libnum_derive-69c598476fa9ab31.dylib
./target/debug/deps/liblewton-502bad4119a8f69a.dylib
bash find
1个回答
3
投票

发现问题!

结果证明这是一个范围界定问题。

find . -type f -name "*.rs" -or -name "*.dylib"

评估为

find . \( -type f -name "*.rs" -or -name "*.dylib" \) -print

Whereas

find . -type f -name "*.rs" -or -name "*.dylib" -print

评估为

find . \( -type f -name "*.rs" \) -or  \( -name "*.dylib" -print \)

因此-type f -name "*.rs"没有与其关联的操作,并且从不打印。

如果我理解不正确,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.