ls
オプションを指定してコマンドを使用すると、-l
最初の文字列は各ファイルに関する情報を提供し、この文字列の最初の文字はファイルのタイプを提供します。(d
=ディレクトリ、-
=標準ファイル、l
=リンクなど)
その最初の文字に従ってファイルをフィルタリングするにはどうすればよいですか?
ls
オプションを指定してコマンドを使用すると、-l
最初の文字列は各ファイルに関する情報を提供し、この文字列の最初の文字はファイルのタイプを提供します。(d
=ディレクトリ、-
=標準ファイル、l
=リンクなど)
その最初の文字に従ってファイルをフィルタリングするにはどうすればよいですか?
回答:
grep
この方法を使用して、ディレクトリ以外のすべてを除外できます。
ls -l | grep '^d'
は^
、パターンが行の先頭にあることを示します。交換するd
と-
、l
該当するとして、など。
もちろん、他のコマンドを使用して特定のタイプ(例find . -maxdepth 1 -type d
)を直接検索したりls -l | sort
、この最初の文字に基づいて同様のタイプをグループ化するために使用できますが、フィルタリングする場合はgrep
、出力から適切な行のみを選択する必要があります。
ls -lL
。-L
シンボリックリンクをたどって、ディレクトリまたはファイルにリンクされているかどうかを示します。
すべての出力を表示したいが、類似したタイプのファイルが一緒にリストされている場合、各行の最初の文字で出力をソートできます。
ls -l | sort -k1,1
このコマンドls
は、ディレクトリデータ構造に記録されているファイル名を処理しています。そのため、ファイルの「タイプ」を含め、ファイル自体を実際には気にしません。
名前だけでなく、実際のファイルでの作業により適したコマンドはfind
です。ファイルタイプでリストをフィルタリングする方法に関する質問に直接答えるオプションがあります。
これにより、次のような現在のディレクトリのリストが表示されls -l
ます。
find . -maxdepth 1 -ls
デフォルトでは、find
1に検索の深さを制限することによって無効化され、再帰的にリストのディレクトリは、
あなたが出て残すことができます.
が、私はディレクトリはオプションの前に表示する必要があります表示するには、それが含まれています。
を使用すると-type
、プレーンファイルまたはディレクトリとして、f
またはd
プレーンファイルまたはディレクトリとして表されるファイルタイプでフィルタリングできます。
find . -maxdepth 1 -type d -ls
-type
、特にl
シンボリックリンクには、他のフィルター値があります。
注があることをシンボリックリンクwhith合併症:
:この場合、ファイルの2種類がありl
、シンボリックリンクを示すが、とのようなものf
にリンクされたファイルのタイプを示すが、。その処理方法を指定するオプションがあるため、選択できます。
からman find
:
-type c
File is of type c:
b block (buffered) special
c character (unbuffered) special
d directory
p named pipe (FIFO)
f regular file
l symbolic link; this is never true if the -L option
or the -follow option is in effect, unless the sym‐
bolic link is broken. If you want to search for
symbolic links when -L is in effect, use -xtype.
s socket
D door (Solaris)
シンボリックリンクの処理に関連します。
-xtype c
The same as -type unless the file is a symbolic link. For
symbolic links: if the -H or -P option was specified, true
if the file is a link to a file of type c; if the -L option
has been given, true if c is `l'. In other words, for sym‐
bolic links, -xtype checks the type of the file that -type
does not check.
そして
-P Never follow symbolic links. This is the default behav‐
iour. When find examines or prints information a file, and
the file is a symbolic link, the information used shall be
taken from the properties of the symbolic link itself.
-L Follow symbolic links. When find examines or prints infor‐
mation about files, the information used shall be taken
from the properties of the file to which the link points,
not from the link itself (unless it is a broken symbolic
link or find is unable to examine the file to which the
link points). Use of this option implies -noleaf. If you
later use the -P option, -noleaf will still be in effect.
If -L is in effect and find discovers a symbolic link to a
subdirectory during its search, the subdirectory pointed to
by the symbolic link will be searched.
When the -L option is in effect, the -type predicate will
always match against the type of the file that a symbolic
link points to rather than the link itself (unless the sym‐
bolic link is broken). Using -L causes the -lname and
-ilname predicates always to return false.
-H Do not follow symbolic links, except while processing the
command line arguments. [...]
他の種類のファイルからフォルダを並べることに最も関心がある場合は、
ls --group-directories-first
それ以外の場合、Anthonが回答したとおり、sortまたはgrepを介してls -lからの出力をパイプする必要があると思います