ファイルが存在し、ファイル名がドットで始まる場合、これはファイルを作成してその中に内容を隠したことを意味しますか、それともファイル名を作成せずにファイルを作成できますか?
ベストアンサー1
たとえば、名前の前にドットがあるファイルやディレクトリに対する唯一の「特別な」点は、デフォルトでの出力.myfile
に表示されないことです。ls
また、ドットで始まるファイル名と明示的に一致しないファイル名のワイルドカードパターンも一致しません。
最初は空のディレクトリを想定します。
$ touch .myfile # this creates an empty hidden file
$ ls # this will output nothing
$ echo * # this will echo a *
*
これらのファイルはしばしば「隠された」ファイルと呼ばれます。ただし、ファイル名はワイルドカードパターンにのみ隠されておりls
、「秘密」、悪意のある、検出できない、または他の人が読めないという意味ではありません(ファイルと親ファイルの権限によって異なります)。
誰でも隠しファイルを作成できます。名前の前にドットを追加するだけです。ファイルが隠されているという事実は、ファイルがどのように作成されたか(ユーザーが明示的にまたは一部のプログラムを実行して)通知しません。たとえば、一部のアプリケーションは隠し名前(設定やキャッシュファイルなどを保存するため)でディレクトリを作成しますが、他のアプリケーションは隠しファイルを生成します。
例えば、
シェルは
bash
通常、.bash_history
コマンドプロンプトに入力するコマンドを含むホームディレクトリに作成されます(したがって、再入力しなくても将来のセッションで簡単に呼び出すことができます)。起動すると、シェルはホームディレクトリのとを使用します.bash_profile
。.bashrc
これらのファイルが存在する場合は、ファイルの作成時にアカウントにコピーされた可能性があります。.ssh
SSHを使用している場合は、ホームディレクトリにという隠しディレクトリがある可能性があります。このディレクトリには公開およびプライベートSSHキーが含まれており、一部の設定ファイルを含めることができます。他の人はこのディレクトリにアクセスできないはずです。できないあなたこのディレクトリを手動で作成します。多くのデスクトップユーティリティは、設定ファイルをホームディレクトリの下のどこかに保存し、
.config
ファイルを.cache
。
ユーザーのホームディレクトリ(および他の場所)にある設定ファイルは、複雑にならないようにこの方法で隠されていることがよくありますls
。
隠しファイルを含むディレクトリ内のすべてのファイルを表示するには、または-a
オプション-A
を使用しますls
(使用すると、-A
Unixディレクトリに存在する.
名前は表示されません..
)。
$ ls -a
. .. .myfile
$ ls -A
.myfile
bash
シェル内の*
他のシェルワイルドカードパターンは、隠された名前と一致しません。これを行うには、dotglob
シェルオプションを有効にしますshopt -s dotglob
。
$ echo *
*
$ shopt -s dotglob
$ echo * # the * now matches a filename, so it is replaced by it
.myfile