"cd ."(シングルポイント)コマンドが役に立つ状況がありますか?

"cd ."(シングルポイント)コマンドが役に立つ状況がありますか?

理論的には、これは現在の作業ディレクトリに変更されるため、重複する必要があります。とにかく、このコマンドを実際に使用できるシナリオはありますか?

答え1

cd .少なくとも2つの有用なケースがすぐに浮上します。

  • 現在のディレクトリのinode番号を更新

    私たちが言うターミナル1あなたは特定のディレクトリとは異なるディレクトリにいますターミナル2ディレクトリを削除し、削除されたディレクトリと同じ名前で新しいディレクトリを作成します。その後、そのディレクトリで役に立つタスク(ファイルの生成など)を実行できます。ターミナル1cd .次の手順を実行して、このディレクトリのinode番号を更新できます。

  • 物理分析ディレクトリ

    ディレクトリ名がシンボリックリンクの場合は、cd -P .リンクコンポーネントを物理的に解決できます。この機能は POSIX から直接提供されます。はい、ここには-Pオプションが必要なので裸ではありませんcd .が、それでも...

答え2

別の小さな効果があります$OLDPWD

新しい端末を起動すると、cdどこかに到着するまでこの変数は空でなければなりません。

1つの可能な使用法を考えることができます。あまり役に立たないかもしれませんし、少し素朴かもしれませんが、

cd -に移動すると、$OLDPWDそれらを一緒に使用して、特定のcd .操作後に同じディレクトリを前後に移動できます。

cd .; for i in {1..100}; do cd -;mkdir "d$i"; cd "d$i"; touch a; done

これはスクリプトで行うことではありませんが、コマンドラインまたはいくつかのコードゴルフで直接実行することもできます。

答え3

cd .本質的には動作しませんが、これが関連する可能性がpushd .ある状況を見ることができます。

また、対話型、手続き型、または引数を介してターゲットディレクトリを指定するスクリプトでは、コマンドは次のようになります。

cd $destinationpath

と評価できる

cd .

変数をこのように割り当てる必要がありますか?

答え4

CMDを使用して空のファイルを生成したい場合にも便利です。次のトリックを使用してください。

cd . > filename.ext

関連情報