Google / man ls
을 통해 찾을 수있는 최선 은 다음과 같습니다.
ls -l | grep -v '^total'
깃발에 누락 된 것이 ls
있습니까?
또한 -h 플래그에 관계없이 왜 총 크기가 kb입니까? 내가 뭘보고 있었는지 잘 모르겠다.
답변
의 소스 코드를 살펴보면 디렉토리 에서 옵션을 사용할 때 항상 표시되는 coreutils
것을 알았습니다 .total
-l
-d
옵션을 사용하여 디렉토리 내용 대신 항목을 나열합니다 total
. 그러나 인수없이 (또는 디렉토리에서) 실행하면 디렉토리가 아닌 디렉토리가 표시됩니다. 따라서 와일드 카드가 필요합니다. *
모든 파일과 .*
일치하고 숨겨진 파일도 일치합니다 ( -a
옵션에 해당 ).
ls -ld * .*
에 관해서는 -h
옵션, 나를 위해 작동합니다. 1118360 바이트는 1.1M으로 표시됩니다. 1024보다 작은 파일은 바이트 단위로 표시됩니다.
답변
ls
디렉토리 목록 실행 을 피하기 위해 와일드 카드를 사용하면 ls
과 같은 옵션 을 사용할 수 없으므로 최적이 아닙니다 --almost-all
.
Enzotib의 제안 과 마찬가지로 그것을 제거하는 가장 간단한 방법 tail
은 첫 번째 줄을 잘라내 도록 파이프를 통과 시키는 것입니다. 그러나 ls
출력이 대화식이 아닌 파이프임을 감지하고 원하지 않는 방식으로 기본값을 변경합니다. 따라서 견고하게하려면 몇 가지 옵션을 추가해야합니다.
--color=always
: 계속 색상 표시--hide-control-chars
:?
콘솔 출력을 망칠 수있는 제어 문자 대신 파일 이름으로 인쇄
스크립트가 있습니다 ~/bin/l
(에서 Bash 별칭을 사용할 수도 있습니다 ~/.bash_aliases
).
#!/bin/bash
ls -l --color=always --hide-control-chars "$@" | tail --lines=+2
ls
기본적으로 원하는 다른 옵션을 추가 할 수도 있습니다 ( 예 🙂 --group-directories-first --time-style='+%FT%T.%N%:::z' --indicator-style=slash
.
답변
ls -l *
을 사용하지 않고 “일반적으로 이름이 지정된”폴더 내용을 제공합니다 total
. 그것은 당신의 필요에 적합 할 것입니다. 불행히도 dot
접두사 파일을 제공하지 않습니다 . 당신이 사용하는 경우 ls -l * .*
리눅스는 트리를 탐색하기 때문에 당신은 혼란을 얻을 것이다.
점 접두사는 폴더를 의미하거나 와일드 카드를 사용하면 위의 폴더를 의미하므로 접두사가 붙은 일반 파일을 선택하는 데 도움이되지 않습니다. 이것은 불행한 디자인 결정으로 보인다.
답변
$ ls -l [DIRECTORY] | sed 1d
(출력은 파일 이름을 포함합니다)
$ ls -ld [path-to-dir]/*
(출력에는 상대 경로가 포함되지만 색상은 보존됩니다)
$ ls -l [DIRECTORY] | tail -n +2
$ ls -l [DIRECTORY] | awk 'NR>=1'
참고 :
“total ….”이라는 파일이있는 경우 다음이 작동하지 않습니다.
$ ls -l | grep -v '^total'