Linux ls는 파일 이름, 날짜 및 크기만 표시합니다.

Linux ls는 파일 이름, 날짜 및 크기만 표시합니다.

lsLinux에서 이름, 날짜, 크기만 포함된 파일 목록을 얻는 방법은 무엇입니까 ? 소유자나 권한과 같은 다른 정보를 볼 필요가 없습니다.

가능합니까?

답변1

stat대신 시도해 보십시오 ls. 다음은 GNU 구현입니다 stat(BSD와 zsh에도 stat명령이 있지만 API는 완전히 다릅니다).

stat -c "%y %s %n" -- *

열 형식으로 출력합니다(모든 파일 이름에 쉼표나 줄 바꿈이 포함되어 있지 않다고 가정).

stat -c "%n,%s" -- * | column -t -s,

-현재 작업 디렉터리에서 파일이 호출되면 GNU는 stat해당 파일이 아닌 stdin에 열려 있는 파일에 대한 정보를 보고합니다.

당신이 만나면Argument list too long오류가 내장된 쉘의 경우 printf다음과 같이 변경할 수 있습니다.

printf '%s\0' * | xargs -0 stat -c "%y %s %n" --

또는 ksh93에서:

command -x stat -c "%y %s %n" -- *

stat매개변수 크기 제한을 해결하기 위해 가능한 한 많은 호출을 실행합니다 .

답변2

1 출력 형식 지정과 같은 다른 유틸리티를 언제든지 사용할 수 있습니다 awk.ls

/bin/ls -ls | awk '{print $7,$8,$9}'


1. 네, 일반적으로 말하면 당신은ls의 출력을 구문 분석하면 안 됩니다.하지만 이 경우에는 질문에서 특별히 요구하는 사항입니다.

답변3

이 유틸리티의 GNU 구현을 통해 파일이 나열되는 방식을 많이 제어할 수 있습니다 find. GNU에서는 ls실제로 원하는 열을 지정할 수 없습니다.

예를 들어:

$ find . -mindepth 1 -maxdepth 1 -printf '%CY%Cm%Cd.%CH%CM\t%s\t%f\n'
20111007.0601   2   b
20111001.1322   4096    a

이 작업에 대한 매개변수는 printf매뉴얼 페이지에 자세히 설명되어 있습니다. 다양한 시간 정보, 원하는 크기(파일 크기 또는 사용된 디스크 블록) 등을 선택할 수 있습니다. 추가 처리가 필요한 경우 비정상적인 파일 이름에 대해 이 작업이 안전한지 확인할 수도 있습니다.

답변4

ls를 사용하고 싶지만 적절한 크기를 유지하려면 다음을 사용할 수 있습니다.

ls -Ss1pq --block-size=1

관련 정보