Saya dapat menemukan subdirektori dari suatu direktori dengan
ls -d -- */
atau
ls -l | grep "^d"
tetapi keduanya tampaknya tidak langsung, dan saya akan membayangkan bahwa akan ada cara standar untuk menemukan direktori saja. Apakah ada cara yang tepat untuk melakukan ini? Dan jika tidak, akankah salah satu dari ini mengarah pada perilaku yang tidak diinginkan pada kasus tepi? (Tautan simbolik, direktori tersembunyi, dll.)
sumber
find . -maxdepth 1 -type d
agar ini berfungsi pada OS X Yosemite.find . -maxdepth 1 -mindepth 1 -type d
. Kalau tidak, direktori saat ini.
akan dimasukkan.FYI - Di ZSH (tapi bukan BASH), Anda juga bisa melakukan ini
ls -d -- *(/)
:; yang(/)
pengubah memberitahu zsh hanya untuk direktori gumpal.Yang mengatakan, itu tidak jauh berbeda dari solusi yang Anda usulkan (
ls -d -- */
), dan itu jauh dari standar.Sejauh output dari
ls
(yang mungkin berbeda berdasarkan pada flag lain):sumber
*(/)
memperluas ke direktori yang tidak disembunyikan sementara*/
memperluas ke direktori yang tidak disembunyikan atau symlink ke direktori (atau setidaknya symlink ke jalur yang kita tahu bahwa mereka adalah direktori).