ls
options 와 함께 명령을 사용할 때 -l
첫 번째 문자 문자열은 각 파일에 대한 정보를 제공하고 문자열의 첫 번째 문자는 파일 유형을 제공합니다. ( d
=디렉토리, -
=표준 파일, l
=링크 등)
첫 글자를 기준으로 파일을 필터링하는 방법은 무엇입니까?
답변1
grep
다음을 사용하여 디렉터리를 제외한 모든 항목을 필터링할 수 있습니다.
ls -l | grep '^d'
^
패턴이 줄의 시작 부분에 있음 을 나타냅니다 . 해당되는 경우 등 d
으로 교체합니다.-
l
물론 다른 명령을 사용하여 특정 유형(예: find . -maxdepth 1 -type d
) 을 직접 검색하거나 ls -l | sort
첫 번째 문자를 기준으로 유사한 유형을 그룹화할 수 있지만 필터링하려면 grep
출력에서 적절한 행만 선택해야 합니다.
답변2
모든 출력을 표시하되 유사한 유형의 파일을 함께 나열하려면 각 줄의 첫 번째 문자를 기준으로 출력을 정렬할 수 있습니다.
ls -l | sort -k1,1
답변3
명령을 ls
처리하는 중입니다.파일 이름, 디렉토리 데이터 구조에 기록됩니다. 따라서 파일의 "유형"을 포함하여 파일 자체에는 실제로 신경 쓰지 않습니다.
작업에 대한 더 나은 명령실제 문서는 이름 그 이상입니다 find
. 파일 형식 목록을 필터링하는 방법에 대한 질문에 직접 답변하는 옵션이 있습니다.
이는 다음과 유사한 현재 디렉토리 목록을 제공합니다 ls -l
.
find . -maxdepth 1 -ls
기본적으로 find
디렉터리는 반복적으로 나열되며 검색 깊이를 1로 제한하여 이 기능을 비활성화합니다. 생략할 수 있지만 .
옵션 앞에 나열해야 하는 디렉터리를 표시하기 위해 포함했습니다.
를 사용하면 일반 파일이나 디렉터리 -type
로 표현되는 파일 형식별로 필터링할 수 있습니다 f
.d
find . -maxdepth 1 -type d -ls
-type
특히 l
심볼릭 링크의 경우 다른 필터 값이 있습니다 .
참고하세요심볼릭 링크의 복잡성: 이 경우 두 가지 유형의 파일이 있습니다. 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. [...]
답변4
다른 파일 형식의 폴더를 정렬하는 것이 가장 염려되는 경우 다음을 선택할 수 있습니다.
ls --group-directories-first
그렇지 않으면 Anthon의 답변에 따라 sort 또는 grep을 통해 ls -l의 출력을 파이프해야 한다고 생각합니다.