パスの後にファイルサイズが含まれるようにlocatedb
目的を構築しました(大容量ファイルをすばやく見つけるのに役立ちます)。frcode
パスとサイズをタブで区切って保存します。コマンドラインで検索を使用すると、?
タブが必要な場所に(疑問符)が表示されることを確認しました。私が送らない限り cat
、変です。なぜこれを知っている人がいますか?
$ mkdir test-locatedb && cd test-locatedb
$ touch a b c d e f g
$ du -a | awk -v 'OFS=\t' '{print $2,$1}' | /path/to/frcode > test.locatedb
$ locate --database=test.locatedb a
./test.locatedb?1
./a?1
$ locate --database=test.locatedb a | cat
./a 1
./test.locatedb 1
$ /usr/lib/locate/frcode -v
frcode (GNU findutils) 4.4.2
...
答え1
私はこれがlocate
出力が存在することを確認することによってコード化されていると思いますstdout
。実際にlocate
出力がttyのときに印刷できない文字を疑問符に置き換える条件があります(参照:printquoted.c
そしてqmark.c
)。また、ASCII制御文字範囲内のスペースを印刷できないと見なします。パイプで接続すると端末の出力が変わるとは思わないので、これは不幸なことだと思いますcat
。これはfindutils
4.6.0でも同様です。私エラーレポート。