ls -l
출력 상단에 총 행(총 블록 수)을 추가합니다. 출력에서 이 줄을 억제하는 직접적인 방법이 있습니까? 첫 번째 줄을 삭제하기 위해 출력을 다른 명령으로 파이프할 수 있다는 것을 알고 있지만 처음에 줄을 억제하는 간단한 옵션이 누락된 것인지 궁금합니다.
답변1
total
아니요, 최소한 디렉터리 내용(인수 없이 현재 디렉터리 포함)을 나열할 때는 행을 삭제하는 간단한 옵션을 놓치지 마세요 . 예를 들어 GNU의 경우 , 및 옵션 을 사용하면 다음 줄 이 표시됩니다 ls
.-l
-g
-n
-o
-s
total
표시 예정, 비활성화할 수 있는 옵션이 없습니다.
if (format == long_format || print_block_size)
{
const char *p;
char buf[LONGEST_HUMAN_READABLE + 1];
DIRED_INDENT ();
p = _("total");
DIRED_FPUTS (p, stdout, strlen (p));
DIRED_PUTCHAR (' ');
p = human_readable (total_blocks, buf, human_output_opts,
ST_NBLOCKSIZE, output_block_size);
DIRED_FPUTS (p, stdout, strlen (p));
DIRED_PUTCHAR ('\n');
}
이것은 실제로POSIX에 의해 시행됨.
그러나 나열할 디렉터리가 아닌 파일을 지정하면 ls
합계가 표시되지 않습니다. 이 -d
옵션을 사용하면 설명된 대로 디렉터리가 파일로 처리되어 원하는 결과가 생성됩니다.코스타스:
ls -ld *
동일한 출력을 생성합니다
ls -l
total
확장할 때 쉘에 숨겨진 파일이 포함되어 있지 않고 *
( dotglob
) 현재 디렉토리에 확장이 *
최대 명령줄 길이를 초과할 정도로 많은 파일이 포함되어 있지 않은 한 이 줄을 뺍니다 .
디렉터리( ls -ld /path/to/directory/*
)를 지정할 수도 있지만 출력에는 와 달리 지정된 경로의 파일이 나열됩니다 ls -l /path/to/directory
.