web-dev-qa-db-ja.com

ドットフォワードスラッシュフォワードスラッシュはどういう意味ですか(.//)?

次のようなコマンドを使用してサーバーをクエリしていました。

find ./ -type f -name 'filename"

私はで始まる多くのファイルを手に入れました

.//library 

または

.//user

これらはどういう意味ですか?

6
munchschair

それはあまり意味がありません:findに与えたパターンは./で、findは、その結果をそのパスに接着します。 先頭のダブルスラッシュが一部のシステムで何らかの意味を持つ可能性があることを除いて、ダブルスラッシュは無視されます(シングルスラッシュとして扱われます)。さらに重要なのは、ポータブルプログラムがこの動作を想定していることです。

ただし、この特定の動作は、古いバージョンのfind(OSXなど)を備えたBSD派生システムでのみ表示されます。 NetBSDは 2005 ;のソースでこれを修正しようとしました。 OSXのユーザーランドはolderです。

「最近の」FreeBSD、NetBSD、OpenBSDをチェックしても、この動作を引き起こすものはありません。 LinuxとUnix(AIX、HPUX、Solaris)も同様に機能しません。

参考文献:

7
Thomas Dickey

.//は現在のディレクトリを意味するため、出力の.//userは現在の作業ディレクトリにあるファイルuserを示します。

二重の//は単一の/に解決されるはずです。これは、私が使用したすべてのシステムに当てはまります。ただし、POSIXはこの動作を///(またはそれ以上)、および/に対してのみ定義しています。

findの検索パスを通常の//ではなく./として使用したため、二重の.が表示されます。どちらも現在の作業ディレクトリを示しており、どちらも正しいです。これは、相対パスの場合にその方法でパスを追加するfindの動作です。 findのこの特定の動作は、 この回答 で言及されているように、システムのサブセットでのみ一般的であり、おそらくその1つであることに注意してください。

6
heemayl

.//./と同じです

最初のスラッシュを超える連続したスラッシュには、意味上の意味がありません。

2
Todd Freed