web-dev-qa-db-ja.com

コマンドラインでのみ見つかった隠しファイル?

たくさんの画像があるディレクトリがあります。 GUIでそこに行き、CTRL + A(すべてのファイルを選択)を押すと、5058個の画像がカウントされます。 `lsを実行します。 | wc -l files 5060個のファイルをカウントします。

「不足しているファイル」は画像であるという疑いがあります。そうしないと、そのファイルで使用しているプログラムがエラーメッセージを返します(5050個のファイルもカウントします)。

1
user6321

非表示のファイルは、GUIまたはcliを使用して表示できます。

GUIの方法を使用して、Nautilus(ファイルマネージャー)でヒット ctrl+h 隠しファイル(ピリオドで始まるファイル名)を含むすべてのファイルを表示します。

隠しファイルは、メタデータファイル、画像カタログファイル、またはアプリケーションの設定などです。これらは、所有している画像ファイルの一般的なリストに寄与しないため、隠されています。

コマンドラインの方法では、lsコマンドとls -aコマンドの違いです。後者は隠しファイルも表示します。

2
heynnema

lsコマンドがls -aまたはls -Aにエイリアスされている場合、その出力には、ディレクトリ自体を参照する...の2つの追加アイテムが含まれます.とその親(..)、および先頭の.で始まる他のファイルなので、5058および5060ファイルとは異なります。 GUIファイルマネージャーに表示されるのは、単にそのようにビルドされているからだけではありませんが、ほとんどのUnixアプリケーションは、これら2つの存在を認識するようにビルドされています。

また、ls | wc -lを使用してファイルをカウントしないでください。 lsの出力の解析 多くの問題があります であり、一般的に避けるのが最善の方法です。コマンドライン経由でディレクトリ内のファイルをカウントする必要がある場合は、適切な方法について 「ls -l」が私よりも多くのファイルをカウントするのはなぜですか を参照してください。

この特定のケースでは、find -maxdepth 1を使用することをお勧めします。 findはすべてのファイルとディレクトリを出力し、先頭の.で始まるファイルまたはディレクトリを非表示にしません

0