2

私は明らかな何かが欠けていることを知っており、それは私の名前の部分に関係していると確信しています。

宿題ですが、正解にかなり近いと思います。より良い書き方も常に高く評価されています!

find /home/caine/thecopy -user caine -size -10240c -name ^a.* | wc 

これにより、wcのが得られ0 0 0、名前の式を削除すると、数え切れないほどの数が得られます。

^ a、'^ a'、'^ a。*'を試しましたが、結果は0になりました。TIAの人々。:)

4

2 に答える 2

4

You need to wrap the file name:

find /home/caine/thecopy -user caine -size -10240c -name "a.*" | wc
#                                                        ^   ^
于 2013-02-26T21:11:21.057 に答える
2

への引数は、正規表現ではなく-name、シェル パターンです。および文字は、正規表現であるかのように、それぞれ名前の先頭および任意の文字ではなく、リテラルおよび文字と一致します。^.^.

で始まるファイル名を一致させたい場合は、次のようにします'a'

find /home/caine/thecopy -user caine -size -10240c -name 'a*' | wc 

前後の引用符a*(一重または二重) は重要です。それらがないと、シェルはパターンをfind見る前にパターンを展開します。

本当に正規表現に一致させたい場合は-name-regex;に置き換えることができます。これは GNU 固有の拡張機能です。しかし、この場合、おそらくシェル パターンで十分です。

a注:名前が;で始まるファイルに一致させたいと想定しています。あなたが実際にそう言ったわけではありません。

于 2013-02-26T21:29:03.283 に答える