0

多数のファイルを含むディレクトリがあります (サブディレクトリはありません)。これらのファイルを希望しfindます。以下は私を近づけます:

$ find docs
docs
docs/bar.txt
docs/baz.txt
docs/foo.txt

ディレクトリ自体をリストしたくありません。代わりにこれを行うことができます:

$ find docs -type f
docs/bar.txt
docs/baz.txt
docs/foo.txt

ワイルドカードを使用してもうまくいくようです:

$ find docs/*
docs/bar.txt
docs/baz.txt
docs/foo.txt

私の理解では、これらはさまざまな方法で機能し-typeます。あるアプローチを他のアプローチよりも優先する理由はありますか?findfind

4

2 に答える 2

1

UNIXタグがあり、例には*があります。一部のバージョンのfindには問題があります。ディレクトリにサブディレクトリがない場合。ご参考までに。

通常、最初に見つけるパラメーターは、ディレクトリまたはディレクトリのリストである必要があります

find /dir1 /dir2 -print

検索は再帰的であるため、各ディレクトリをたどって、すべてのもの、シンボリックリンク、ディレクトリ、パイプ、および通常のファイルを一覧表示します。これは混乱を招く可能性があります。-typeは検索を区切ります

find /dir1 /dir2 -type f -print

また、追加の出力例を見つけることもできます。たとえば、30日より古いrmファイルを使用します。

find /dir1 /dir2 -type f -mtime +30 -exec rm {} \;

または完全な情報を提供します

find /dir1 /dir2 -type f -mtime +30 -exec ls -l {} \;
find /dir1 /dir2 -type f -mtime +30 -ls   # works on some systems

あなたの質問に答えるには:検索は危険である可能性があるため、rmのような厄介なコマンドを使用している場合は、常に各ディレクトリ、ファイルタイプなどを完全に指定してください。お気に入りのディレクトリもそこにあるのを忘れているかもしれません。またはあなたの給料を生成するために使用されるもの。ワイルドカードを使用すると、見回すだけで問題ありません。

*を使用する

find /path/to/files -type f -name 'foo*' 

--一部のUNIXシステムでは、スターが含まれる文字列をチックまたは引用符で囲みます。

于 2013-02-19T02:45:28.740 に答える
0
find docs -type f

docs のすべてのサブディレクトリのディレクトリ以外のすべてのファイルのリストを取得します

find docs/*

すべてのファイルとドキュメントのすべてのサブディレクトリのリストを取得します

于 2014-03-11T23:48:49.040 に答える