10K_TIF(ホームディレクトリ)というディレクトリがあります。このデフォルトディレクトリには、それぞれtifイメージを含む複数のサブディレクトリがあります。各TIFイメージを読み、bashコマンドを使用してそのパスを抽出したいと思います。 10K_TIFサイズが15TBを超えています。
サンプル:
10K_TIF/4320cc/4320cc_01_rectified.tif
10K_TIF/4320cc/4320cc_02_rectified.tif
10K_TIF/4520cc/4520cc_01_rectified.tif
10K_TIF/4520cc/4520cc_02_rectified.tif
すべてのサブディレクトリをエコーし、すべてのtifイメージもエコーしましたが、これらのイメージは別々のコマンドにあります。
答え1
あなたはそれを使用することができますfind
:
find 10K_TIF -iname '*TIF'
結果を繰り返し、各画像に対して特定のタスクを実行するには、次のように使用できます。
find 10K_TIF -iname '*TIF' | while read tif; do echo "Found: $tif"; done
上記は、ファイル名が正常で、空白や奇妙な文字がないと仮定しています。ファイル名にこれらの文字を含めることができる場合は、代わりに以下を使用してください。
find 10K_TIF -iname '*TIF' -print0 |
while IFS= read -r -d '' tif; do echo "Found: $tif"; done
答え2
find 10K_TIF -iname "*.tif"
ファイルのコンテンツタイプを見つけるなど、各ファイルを処理する場合
find 10K_TIF -iname "*.tif" -print0 | xargs -0 -n1 file
または md5sum を計算します。
find 10K_TIF -iname "*.tif" -print0 | xargs -0 -n1 md5sum
答え3
すべてのサブディレクトリ内のすべての* .tiffファイルのみを一覧表示するには、パターン(globstar)をbash
使用するのが最も簡単です。**
shopt -s globstar
ls **/*.tiff
答え4
find
すべてのファイルを見つけ、使用したいコマンドに渡すことができます。
find 10K_TIF -iname "*.tif" -type f -print0 | xargs -0 -n1 <command>
(大文字と小文字の区別)で終わるすべての項目10K_TIF
に一致するすべてのサブディレクトリを検索します。.tif
そして.tif
通常のファイルです(つまり、ディレクトリ、特殊ファイル、およびで終わるシンボリックリンクは処理されません)。
たとえば、シンボリックリンクと一般ファイルを処理するには、次のようにします。
find 10K_TIF -iname "*.tif" \( -type f -o -type l \) -print0 | xargs -0 -n1 <command>