特定のディレクトリでファイルを探す

特定のディレクトリでファイルを探す

私は大学で「名前」で終わるディレクトリとサブディレクトリからすべてのファイルを見つける練習をしました。

私は次のコマンドに達しました。

ls *.xls /users/home/DESKTOP/*SCHEDULE

これにより、デスクトップに.xlsファイルのみが表示され、名前にSCHEDULEを含むすべてのディレクトリが開きますが、それを行うと、.xlsファイルのみを含むディレクトリ内のすべてのファイルが表示されます。

ベストアンサー1

「ファイル」は、ディレクトリ、シンボリックリンク、ソケット、名前付きパイプなどではなく、「一般ファイル」を意味すると仮定します。

.xlsファイル名のサフィックスがあり、現在のディレクトリのディレクトリの内側または下にあり、名前に対応するSCHEDULE文字列を含むすべての一般的なファイルを見つけるには、次の手順を実行します。

find . -type f -path '*SCHEDULE*/*' -name '*.xls'

-type f現在処理中のファイル形式をテストしますfind。通常のファイル(タイプf)の場合は、次のテストが考慮されます(そうでない場合はファイルでない場合は、次のテストが検証されます)。

このテストは、現在スキャンしている-pathファイルのフルパス名のテストです。findこのパス名が一致すると、*SCHEDULE*/*次のテストが考慮されます。パターンの後者SCHEDULEのため、パターンはディレクトリ名(最終ファイル名ではない)とのみ一致します。/

最後のテストはファイル名です.xls

デフォルトでは、すべてのテストに合格したすべてのパス名が印刷されます。

コマンドを次のように短縮することもできます。

find . -type f -path '*SCHEDULE*/*.xls'

おすすめ記事