ls
Linux에서 이름, 날짜, 크기만 포함된 파일 목록을 얻는 방법은 무엇입니까 ? 소유자나 권한과 같은 다른 정보를 볼 필요가 없습니다.
가능합니까?
답변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