ls notシンボリックリンク


12

「シンボリックリンクlsではないすべてのファイル」のような否定条件を表示する方法はありますか?私は後者をプロジェクトディレクトリで頻繁に使用しますが、他の否定も同様に役立ちます。

今のところ、私の研究では、「いいね」のエイリアスを作成するだけです。

find . -maxdepth 1 ! -type l | sort # (...)

しかし、明らかにこの方法でlsは、列の書式設定などの色が表示されません...

OS X 10.8.2のBash v3とPangolinのBash v4を時々使用しています。

回答:


14

にパイプする代わりにsort、lsを使用します。

find . -maxdepth 1 \! -type l -exec ls -d {} +

find . -maxdepth 1 \! -type l | xargs ls -d

zshシェルを使用した場合、移植性のないglob拡張機能を使用できます。

ls -d *(^@)

Thx 4の答え!なぜ逃げるのか!?それがなくても動作しているようです。それをエスケープしないことによって私が危険にさらしているのは何ですか?ファイナル+ではなく\;、ファイナルをどのように使用しているのか、説明してください。
Robottinosino

2
@Robottinosino は、ファイルごとに個別に実行するのではなく、+すべてを単一のlsコマンドに送信します(このようにして、lsは列とソートを実行できます)。私は逃げた!なぜなら、あなたのシェルはそれをうまく受け入れているように見えても、それはいくつかのシェルにとって特別な文字だからです。
ランダム832

わかった。素晴らしいもの!単純な述語を否定するだけでも、少し面倒だとls思いますか?もっと良い方法がありますか?
Robottinosino

1
@Robottinosino zshでできることで編集。bashでできるとは思いませんが。
Random832
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.