Bash 디렉토리가 아닌 파일만 나열하는 방법
폴더나 서브파일은 제외하고 한 폴더의 모든 파일을 나열하려면 어떻게 해야 합니까?즉, 다음과 같습니다.파일만 나열하려면 어떻게 해야 하나요?
사용.find
:
find . -maxdepth 1 -type f
사용방법-maxdepth 1
옵션은 현재 디렉토리(또는 를 치환한 경우)만 검색하도록 합니다..
그 디렉토리)를 사용해 주세요.해당 및 하위 디렉터리의 모든 파일을 재귀적으로 나열하려면 해당 옵션을 삭제하십시오.
ls -p | grep -v /
ls -p 를 사용하면 폴더 이름 뒤에 / 를 표시할 수 있습니다.이 폴더는 삭제하는 태그로 기능합니다.
carlpett의 기반 답변(
find . -maxdepth 1 -type f
)는 원칙적으로는 동작하지만, 사용하는 것과는 전혀 다릅니다.모두 프리픽스 앞에 있는 파일명의 잠재적인 정렬되지 않은 리스트가 표시되며,의 많은 옵션을 적용할 수 없게 됩니다.
또한.find
은닉 아이템도 반드시 찾아냅니다만,ls
의 동작은 의 유무에 따라 달라집니다.-a
또는-A
옵션들.Alex Hall이 이 질문에 대한 코멘트에서 제안한 개선사항은 셸글로빙과 다음을 결합하는 것입니다.
find * -maxdepth 0 -type f # find -L * ... includes symlinks to files
- 단, 이것이 프리픽스 문제를 해결하고 알파벳 순으로 정렬된 출력을 제공하지만 숨겨진 아이템의 포함에 대한 (인라인) 제어나 액세스 권한은 아직 없습니다.
ls
에는 기타 많은 정렬/출력 형식 옵션이 있습니다.
- 단, 이것이 프리픽스 문제를 해결하고 알파벳 순으로 정렬된 출력을 제공하지만 숨겨진 아이템의 포함에 대한 (인라인) 제어나 액세스 권한은 아직 없습니다.
Hans Rogeman의 + 답변은 실용적이지만 긴()
-l
출력 형식을 사용해야 합니다.
이러한 제한에 대처하기 위해 (ls 필터링) 유틸리티를 작성했습니다.
- 출력 유연성을 제공하는 동시에 타입 변환 기능을 제공하는 유틸리티
- 파일, 디렉토리 및 심볼 링크와 같은 유형 구분 문자를 목록 앞에 배치하기만 하면 됩니다.
ls
인수(실행)fls --help
또는fls --man
자세한 것은 이쪽).
예:
fls f # list all files in current dir.
fls d -tA ~ # list dirs. in home dir., including hidden ones, most recent first
fls f^l /usr/local/bin/c* # List matches that are files, but not (^) symlinks (l)
인스톨
지원되는 플랫폼
- npm 레지스트리에서 설치하는 경우: Linux 및 macOS
- 수동으로 설치하는 경우: Bash를 사용하는 Unix와 유사한 플랫폼
npm 레지스트리에서
주의: 패키지 매니저인 Node.js를 사용하지 않더라도npm
플랫폼 전체에서 동작하며 설치가 용이합니다.
curl -L https://git.io/n-install | bash
Node.js 가 인스톨 되어 있는 경우는, 다음과 같이 인스톨 합니다.
[sudo] npm install fls -g
주의:
필요 여부에 관계없이
sudo
Node.js / io.js 설치 방법과 나중에 권한을 변경했는지 여부에 따라 달라집니다.EACCES
, 에러, 에러, 에러로 다시 시도해 .sudo
.
수동 설치
- 이 스크립트를 다음 형식으로 다운로드합니다.
fls
. - 한 것으로 하다
chmod +x fls
. - 또는 폴더 내 합니다.
$PATH
「」, 「」등입니다./usr/local/bin
(macOS) 。/usr/bin
(Linux).
하위 디렉터리 없이 일부 디렉터리의 내용 나열
사용하는 것을 좋아합니다.ls
샘플의 : options, options:
-l
목록-t
시간에 따른 , newest 수수 sort sort 、 sort sort sort-r
중-F
,--classify
표시기 중 를합니다.-h
,--human-readable
- l - s, 1K 234M 2G...
★★★★★★★★★★★★★★★★★.--color
()ls --help
)
폴더를 제외한 모든 항목 나열
파일, 심볼링크, 디바이스, 파이프, 소켓 등이 표시됩니다.
그렇게
find /some/path -maxdepth 1 ! -type d
날짜별로 쉽게 정렬할 수 있습니다.
find /some/path -maxdepth 1 ! -type d -exec ls -hltrF {} +
파일만 나열:
또는
find /some/path -maxdepth 1 -type f
크기별로 정렬:
find /some/path -maxdepth 1 -type f -exec ls -lSF --color {} +
숨김 항목 목록 금지:
엔트리를 표시하지 점으로 " "를 합니다.! -name '.*'
:
find /some/path -maxdepth 1 ! -type d ! -name '.*' -exec ls -hltrF {} +
그리고나서
요./some/path
타타에 .
현재 디렉토리 또는..
부모 디렉토리의 경우.
이 경우에도 하실 수 있습니다.ls
grep
★★★★★★★★★★★★★★★★★」egrep
을 사용법
ls -l | egrep -v '^d'
ls -l | grep -v '^d'
파일 검색: ls - l / home | grep "^-" | tr - s ' | cut - d ' - f 9
디렉토리 검색: ls - l / home | grep "^d" | tr - s ' | cut - d ' - f 9
링크 검색: ls - l / home | grep "^l" | tr - s ' | cut - d ' - f 9
tr - s ' 는 출력을 공백 구분 파일로 변환합니다.cut 명령어는 딜리미터를 공백으로 지정하고 9번째 필드(항상 파일 이름/디렉토리 이름/링크 이름)를 반환합니다.
나 이거 맨날 써!
천만에요!
ls -l | grep '^-'
로 접속할 수 .cut
★★★★★★★★★★★★★★★★★」awk
.
ls -l | grep '^-' | awk '{print $9}'
ls -l | grep '^-' | cut -d " " -f 13
{ find . -maxdepth 1 -type f | xargs ls -1t | less; }
" " 가 되었습니다.xargs
되게 하기 위해-1
-l
ls
다음 중 하나를 수행할 수 있습니다.
echo *.* | cut -d ' ' -f 1- --output-delimiter=$'\n'
echo *.* | tr ' ' '\n'
echo *.* | sed 's/\s\+/\n/g'
ls -Ap | sort | grep -v /
이 메서드는 외부 명령을 사용하지 않습니다.
bash$ res=$( IFS=$'\n'; AA=(`compgen -d`); IFS='|'; eval compgen -f -X '@("${AA[*]}")' )
bash$ echo "$res"
. . .
칼펫의 대답에 더해서 말이야파일을 보다 편리하게 표시하려면 출력을 ls로 파이핑할 수 있습니다.
find . -maxdepth 1 -type f|ls -lt|less
가장 최근에 수정된 파일을 목록 형식으로 표시합니다. 많은 파일을 다운로드하고 최근 파일의 비클러터 버전을 보려면 매우 유용합니다.
"find '-maxdepth'는 이전 버전의 bash와 함께 사용할 수 없기 때문에 다음과 같이 사용합니다.
f in $(ls)의 경우, [ -f $f ]의 경우, $f ; f ; f ; f ; f ; done을 에코합니다.
언급URL : https://stackoverflow.com/questions/10574794/how-to-list-only-files-and-not-directories-of-a-directory-bash
'it-source' 카테고리의 다른 글
XLRD 패키지를 사용한 Excel 시트 셀 색상 코드 식별 (0) | 2023.04.16 |
---|---|
CSS를 사용하여 텍스트를 세로 방향으로 중앙에 배치하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
Oracle 11g(클라이언트)을 제거/완전 삭제하는 방법 (0) | 2023.04.11 |
Windows의 Cygwin 쉘을 PowerShell에서 교체할 준비가 되었습니까? (0) | 2023.04.11 |
SQL 서버에서 group_concat을 사용하여 쿼리를 만드는 방법 (0) | 2023.04.11 |