dos2unix 処理のために *.c ファイルを繰り返し検索します。

dos2unix 処理のために *.c ファイルを繰り返し検索します。

目標はfind *.c ファイル保留中dos2unix:

find . -name *.c | xargs dos2unix -f

上記のコマンドの問題を解決してください。

user@host:~/csim/exercise$ find . -name *.c
./6-1/dinph_3p.c
./6-1/dinph_pi.c
./9-2/lift.c
./6-4/cmptr.c
./8-7/station.c
./7-4/hire.c
./5-2/ran_test.c
./8-4/cmptrm.c
./9-5/trunked.c
./8-5/computer.c
./9-3/aloha.c
./12-3/mcpu.c
./10-5/abp_pi.c
./6-2/dinph_3p.c
./6-2/dinph_pi.c

BASHがディレクトリの1つ上のレベルに移動したときにこれが起こるのはなぜですか?

$ cd ..

同じコマンドが少なくとも上記の.cファイルを返しませんか?

user@host:~/csim$ find . -name *.c
find: paths must precede expression: random.c
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec|time] [path...] [expression]

ベストアンサー1

ワイルドカード文字(例*.c:)を検索するときは、単一​​引用符で囲む必要があります。ディレクトリを上に移動すると、入力したディレクトリに終わるファイルが複数あることが予想されます。.cその一つはrandom.c*.c

ディレクトリに次のものが含まれているとしますhi.crandom.c

find . -name *.c

になる:

find . -name hi.c random.c

一重引用符で囲むと、*.cシェルは拡張されません。

以下の各ファイルを見つけて処理するには.c~/csimdos2unix

find ~/csim -type f -name '*.c' | xargs dos2unix -f

おすすめ記事