1. ホーム
  2. linux

[解決済み】Linuxでディレクトリをループオーバーする方法は?

2022-04-09 21:28:10

質問

Linuxのbashでスクリプトを書いているのですが、与えられたディレクトリのすべてのサブディレクトリ名を調べる必要があります。どのように私はこれらのディレクトリを介してループ(と通常のファイルをスキップ)することができますか?

例えば

指定されたディレクトリは /tmp/

には、以下のサブディレクトリがあります。 /tmp/A, /tmp/B, /tmp/C

A,B,Cを取り出したい。

どのように解決するのですか?

cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'

簡単な説明です。

  • find は、ファイルを検索します(当たり前ですが)。

  • . はカレントディレクトリで、その後に cd/tmp (IMHOでは、この方がより柔軟です。 /tmp の中に直接 find コマンドを使用します。一か所しかない、 cd このフォルダーでより多くのアクションを実行させたい場合は、変更する必要があります)

  • -maxdepth 1-mindepth 1 を確認します。 find はカレントディレクトリだけを検索し、その中に . を使用します。

  • -type d はディレクトリのみを検索します。

  • -printf '%f\n は、ヒットしたフォルダの名前(と改行)だけを表示します。

はい、できました。