cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'
簡単な説明:
-
find
ファイルを検索します (明らかに) -
.
cd
の後の現在のディレクトリです。/tmp
です (これは/tmp
よりも柔軟ですfind
に直接 指図。cd
という 1 つの場所しかありません 、このフォルダーでさらにアクションを実行する場合は、変更します) -
-maxdepth 1
と-mindepth 1
find
であることを確認してください 現在のディレクトリのみを検索し、.
は含まれません 結果に含まれる -
-type d
ディレクトリのみを検索 -
-printf '%f\n
ヒットごとに、見つかったフォルダーの名前 (および改行) のみを出力します。
ほら!
これまでの回答はすべて find
を使用しています 、これはシェルだけのものです。あなたの場合、外部ツールは必要ありません:
for dir in /tmp/*/ # list directories in the form "/tmp/dirname/"
do
dir=${dir%*/} # remove the trailing "/"
echo "${dir##*/}" # print everything after the final "/"
done