파일을 나열 할 때 디렉토리를 제외 시키려면 어떻게합니까?


21

현재 디렉토리에 파일을 나열 할 때 디렉토리를 제외 시키려면 어떻게합니까?

ls .

^는 목록에 디렉토리를 포함합니다.

답변:


23

이걸로 해봐:

find . -maxdepth 1 -not -type d

3
간단하게 유지하십시오 : $ find. 유형 f
jamzed

9
아니요. (1) 재귀 적입니다. (2) 심볼릭 링크를 나열하지 않습니다. @Steve는 ls .디렉토리 가 없는 것과 동등한 것을 요청 했으며 여기에 있습니다.
Alexander Gladysh

2
추가 -ls또는 -exec ls -l {} \;처럼 만들 것 ls -l디렉토리없이.
Ladadadada

15

정확하게 ls .당신 과 동등한 것을 얻으려면 숨겨진 dirs를 표시하지 않아도됩니다.

find . -maxdepth 1 -not -type d -and -not -name '.*'

그리고 여전히 각 파일 이름 앞에 './'가 붙습니다. 그것은 실제로 문제가 아니지만, 나는 그것이 추악하다고 생각합니다. 나는 ~와 갔다:

ls -p | grep -v '/$'

그러면 목록이 똑같이 보이고 추가 ls인수를 추가 할 수 있습니다 . 를 추가하면 --color=alwaysdircolor가 다시 나타나거나 -a숨겨진 파일이 표시됩니다.

Alexander는 실제로 문제의 파일의 파일 시스템 특성에 따라 달라지기 때문에 Alexander의 답변을 좋아합니다. 내 대답은 이름의 마지막 문자로 '/'가있는 파일에 속지 않습니다. 그러나 그것은 문제를 요구하는 것처럼 보입니다.


1
'-not'은 POSIX를 준수하지 않기 때문에 GNU 찾기와 관련이 있습니다. 사용자가 "나쁜"
습관

2
@JiriXichtkniha POSIX 대안은 무엇입니까?
Lucas Gallindo

5

이 시도:

$ 찾기. -타입 f-최대 깊이 1

아니면 이거:

$ ls -p | egrep -v / $

$ ls -la | egrep -v ^ d


3

오래된 게시물이지만 이것이 도움이 될 것이라고 생각했습니다 ..

$ ls -l | grep -v ^ d

심볼릭 링크, 문자 및 블록 파일을 포함한 모든 파일을 나열합니다.


이 답변은 이미 1 년 전에 jamzed (이 시각적 소음을 일으킴)에 의해 제공되었습니다.
Alexx Roche

2

위의 "찾기"솔루션은 ls의 일부 기능을 잃 습니다 (예 : 내림차순 수정 시간으로 정렬 된 파일 만 나열).

"ls -p | grep"답변은 원하는 경우 -R과 같은 ls의 다른 요소를 우아하게 처리하지 않습니다.

다음 대답은 잠시 더 자세한, 제 생각에 진정한 반영 LS의 "파일 만"을 선택하는 행동과 대부분의 유연성을

ls -t . | while read line; do
  if [ -f $line ]; then
    echo $line
  fi 
done

원하는대로 ls 스위치를 교체하면 결과가 파일로만 리턴됩니다. 링크 및 기타 항목도 필요한 경우 포함 테스트를 위해 약간의 재 작업을 수행해야합니다.


0
ls $(file --no-pad  -F' '  * | grep -v directory | cut -d' ' -f1)

이를 통해 ls일반적으로 사용되는 다른 옵션을 계속 사용할 수 있습니다 . 또는 ... -v디렉토리 만 나열하려면 제거하십시오 . 또는 ... fileASCII, empty, ELF 등 을 이해하고보고 하는 다른 파일 형식으로 디렉토리를 바꾸십시오 .


나열된 파일 이름에 공백이 있으면 작동하지 않습니다.
Psychonaut

ls -t .|while read f;do [ -f "$f" ]&& echo $f;done내 테스트에서 약 3 배 빠릅니다
Alexx Roche

0

find바이너리가 지원하지 않는 시스템 -not을 사용하고 있었고 다음을 사용했습니다.

ls|while read f;do [ -f "$f" ]&& echo $f;done

장점 : sh ls echo
bash 및 dash와 호환 되지 않는 것 이외의 다른 것에 의존하지 않습니다. 일부 답변보다 빠르며 RAM과 CPU를 덜 사용하여
다른 것들 (예 : 디렉토리)과 일치하도록 변경할 수 있습니다-f

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.