空の文字列はいつ現在のディレクトリを表しますか?

空の文字列はいつ現在のディレクトリを表しますか?

find次のようなカレントディレクトリの一部のファイルを収集するために使用するスクリプトから

$ find . -name "*.h"
./foo.h

さて、プレフィックスfoo.hなしで出力するだけです。空の./文字列は、""シェルコマンドの現在のディレクトリを表すようです。しかし、これは以下を提供します:

$ find "" -name "*.h"
find: ftsopen: No such file or directory

だから私は間違っていた。今私の質問は、いつ/どのように/どこ/.. "空の文字列(?)"は、ファイル名またはパス名を必要とするコマンドの現在のディレクトリを意味しますか?簡潔で啓発的な説明はありますか?

追加の質問は、上記の検索項目を文字列操作la${parameter#word}またはcutまたはsed?なしで簡単に解決できるかどうかです。

ベストアンサー1

ずっと前( 7版32V4.2BSD4.3BSD)、システムコールレベルで現在の作業ディレクトリを表す長さゼロのパス名。存在する システム3、長さ0のパス名を使用することは、すべての場合にエラーです。POSIX規格パス名の解決については、次のような言葉があります。

空のパス名は正常に解決されません。

おすすめ記事