回答:
ls -d */
現在のディレクトリ内のディレクトリを一覧表示するには、これを試してください
ls -al | grep '^d'
-これははるかに簡潔です。
*/
スラッシュで終わるアイテムのみが強制的に表示されることは知っています。この場合、-F
オプションがls
使用されていなくても、この場合はディレクトリになります。ディレクトリでls *php
終わるすべてのファイルの動作と表示方法に似ていますphp
。
echo */
ことも行います
これを試して:
find . -maxdepth 1 -type d
ls
解決策とfind
は異なり、(制限を課す可能性のあるシェルのワイルドカード拡張に依存せずに)仕事を行う責任があります。また、はるかに簡潔です。
find * -maxdepth 0 -type d
。
find
通常はありませんが、出力のみ深さ1でフォルダ
以下
find * -maxdepth 0 -type d
基本的に、「*」の展開、つまり現在のディレクトリ内のすべてのエントリを-type d
条件でフィルタリングします。
利点は、出力はと同じですがls -1 *
、ディレクトリとエントリのみがドットで始まっていないことです。
ls -d */
または使用できますtree -d
別の解決策はグロビングですが、これは使用しているシェルと、ディレクトリのグロビングがサポートされているかどうかによって異なります。
たとえばZSH:
zsh # ls *(/)
tree
ますか?
tree
デフォルトではインストールされていません(リポジトリにはあります)。
tree
コマンドがネイティブのUNIXコマンドではないと私が思うので、反対票を投じます(間違っている場合は訂正してください)。
それを行う方法はたくさんあるので、ここにもう一つあります:
tree -d -L 1 -i --noreport
tree -d -L 1 -i --noreport | tail -n +2
tree -C -d -L 1 -i --noreport | tail -n+2
ls -l | grep '^d'
エイリアスを作成してプロファイルファイルに追加できます
alias ld="ls -l| grep '^d'"
find . -maxdepth 1 -type d -name [^\.]\* | sed 's:^\./::'
これを使用してディレクトリのリストを取得します
ls -d */ | sed -e "s/\///g"
find specifiedpath -type d
サブディレクトリで再帰したくない場合は、代わりにこれを行うことができます:
find specifiedpath -type d -mindepth 1 -maxdepth 1
「ドット」ディレクトリ(名前がで始まる.
)もリストされることに注意してください。ただし、特別なディレクトリ.
やはありません..
。「ドット」ディレクトリが必要ない場合は、grep
それらを除外できます。
find specifiedpath -type d -mindepth 1 -maxdepth 1 | grep -v '^\.'
mindepth
することに賛成票を投じて.
ください!😁
答えはあなたのシェルに依存します。
zsh
例えば、次の操作を実行できます。
echo *(/)
そして、現在の作業ディレクトリ内のすべてのディレクトリが表示されます。
見る man zshexpn
、をしてください。
別のアプローチはを使用することfind(1)
です。
find . -maxdepth 1 -type d -print
find(1)
には多くの用途があるため、ぜひお勧めしman find
ます。
これを行うには、スイッチとtree
コマンドを使用しd
ます。
% tree -d tstdir
tstdir
|-- d1
| `-- d11
| `-- d111
`-- d2
`-- d21
`-- d211
6 directories
詳細についてはman tree
、を参照してください。
tree
ます。まあ、誰かの雷を盗むつもりはなかった。
このディレクトリがある場合:
ls -l
lrwxrwxrwx 1 nagios nagios 11 août 2 18:46 conf_nagios -> /etc/icinga
-rw------- 1 nagios nagios 724930 août 15 21:00 dead.letter
-rw-r--r-- 1 nagios nagios 12312 août 23 00:13 icinga.log
-rw-r--r-- 1 nagios nagios 8323 août 23 00:12 icinga.log.gz
drwxr-xr-x 2 nagios nagios 4096 août 23 16:36 tmp
すべてのディレクトリを取得するには、-Lを使用してリンクを解決します。
ls -lL | grep '^d'
drwxr-xr-x 5 nagios nagios 4096 août 15 21:22 conf_nagios
drwxr-xr-x 2 nagios nagios 4096 août 23 16:41 tmp
-Lなし:
ls -l | grep '^d'
drwxr-xr-x 2 nagios nagios 4096 août 23 16:41 tmp
conf_nagiosディレクトリがありません。
bashでは:
ls -d */
すべてのディレクトリを一覧表示します
ls -ld */
すべてのディレクトリを長い形式でリストします
ls -ld */ .*/
隠しディレクトリを含むすべてのディレクトリを長い形式でリストします。
私は最近zsh(MacOS Catalina)に切り替えて、それを発見しました:
ls -ld */ .*/
現在のディレクトリに隠しディレクトリが含まれていない場合は機能しなくなります。
zsh: no matches found: .*/
上記のエラーが出力されますが、ディレクトリの印刷も失敗します。
ls -ld *(/) .*(/)
同じように失敗します。
これまでのところ、私はこれを発見しました:
ls -ld */;ls -ld .*/
まともな回避策です。;
コマンドの区切りです。ただし、非表示のディレクトリがない場合は、ディレクトリが一覧表示され、非表示のディレクトリがない場合でもエラーが出力されます。
foo
bar
zsh: no matches found: .*/
ls
カレントディレクトリのリストの内容のためのシェルコマンドです
-l
(1行に1つのアイテム+他のクールな情報の束)がロングフォードでは、リストにしたいことを指定するためのフラグであり
-d
、再帰的ではない「ファイルとして」すべてのディレクトリを一覧表示するためのフラグであると
*/
されます引数「スラッシュで終わるすべてのファイルをリストする」
*
は、「すべて」の単純な正規表現コマンドなので*/
、「「/」で終わるすべてをリストするようにシェルに要求しています」
詳細についてはman ls
、を参照してください。
私はこれを置きました:
alias lad="ls -ld */;ls -ld .*/"
私の.zshrcで、それは正常に動作するようです。
注:私はそれも発見しました
ls -ld .*/ 2> /dev/null
端末にsterrを表示するため、機能しません。解決策が見つかった場合は、回答を更新します。
ディレクトリの長いリスト
ディレクトリリスト
- lsと-d * /