~/testing $ echo Hello > hello.txt
~/testing $ echo Goodbye > goodbye.txt
~/testing $ cat goodbye.txt hello.txt > HELLO.txt
^C
~/testing $ ls -l
total 9056
-rw-r--r-- 1 user user 8 25 Jul 16:21 goodbye.txt
-rw-r--r-- 1 user user 4631048 25 Jul 16:22 hello.txt
~/testing $
世界保健総会?ここに何かがありました。ファイルを無感覚に削除するオプションはありませんか?これはなぜ円形に見えるのでしょうか?
答え1
Mac OS Xは、デフォルトでは大文字と小文字を区別しないファイルシステムを使用します。変更するには、大文字と小文字を区別するオプションを使用してディスクを再フォーマットする必要があります。主要ベンダーによって作成されたいくつかのプログラムに注意してください。<cough>Adobe</cough>、<cough>Microsoft</cough>大文字と小文字を区別するファイルシステムに深刻な問題があります。
ファイルシステムは大文字と小文字を区別しませんが、すべてのファイルは大文字と小文字を区別しません。つまり、+(大文字H、タブ順)という名前のファイルがあると、hello.txt
完成候補を取得できません(シェルを区別しない完成に設定しない限り)。shiftHTab
答え2
cat goodbye.txt hello.txt > HELLO.txt
でき事の連続:
- シェルはhello.txtを0バイトに切り捨てます。
- catはhello.txtを指すstdoutにbyby.txtの内容を書き込みます。
- cat は hello.txt を読み始め、読み込んだ内容を stdout に書き込みます。 stdoutはまだhello.txtを指しています。 cat は同じファイルを読み書きするため、ファイルの終わりに達せずにファイルシステムがいっぱいになるまで hello.txt に追加し続けます。
答え3
OSXでは、ディスクフォーマットのデフォルトオプションはHFS +ジャーナリング(大文字と小文字を区別しない)です。この動作が必要な場合は、大文字と小文字を区別するように型を明示的に設定する必要があります。
あなたが見ている行動は意図的なものです。