cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'
簡単な説明:
-
findファイルを検索します (明らかに) -
.cdの後の現在のディレクトリです。/tmpです (これは/tmpよりも柔軟ですfindに直接 指図。cdという 1 つの場所しかありません 、このフォルダーでさらにアクションを実行する場合は、変更します) -
-maxdepth 1と-mindepth 1findであることを確認してください 現在のディレクトリのみを検索し、.は含まれません 結果に含まれる -
-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