find -printf의 % 지시문 설명


20
find /tmp -printf '%s %p\n' |sort -n -r | head

이 명령은 제대로 작동하지만 %s %p여기서 사용되는 옵션 은 무엇 입니까? 사용할 수있는 다른 옵션이 있습니까?


4
find의 맨 페이지를 살펴보십시오.
사이러스

답변:


25

여기에 사용 된 % s % p 옵션은 무엇입니까?

에서 맨 페이지 :

% s 파일 크기 (바이트).

% p 파일 이름.

해당 페이지에서 printf의 모든 일반 문자를 넘어 아래로 스크롤하고 접두사 %가 붙은 부분을 읽습니다.

% n 파일에 대한 하드 링크 수.

% p 파일 이름.

% P 파일 이름은 발견 된 시작점의 이름으로 제거됩니다.

% s 파일 크기 (바이트).

% t 파일의 마지막 수정 시간은 C`ctime '함수에 의해 반환 된 형식입니다.

사용할 수있는 다른 옵션이 있습니까?

있습니다. 맨 페이지 링크를 참조하십시오.


@don_crissti 나는 사람들이 왜 자신의 시스템에 설치된 문서보다 무작위 웹 문서를 선호하는지 이해하지 못할 것이다.
Kusalananda

1
@ Kusalananda-글쎄, 사람들이 시스템에 설치된 문서에서 인용하는 대신 웹 페이지에 대한 링크를 포함하는 한 가지 시나리오를 생각할 수 있습니다. .. 그러나 링크는 공식 문서 (imo)를 가리켜 야합니다 (따라서 위의 내 의견은 알려지지 않은 이유로 인해 mods에 의해 삭제되었습니다 ...). 그 외에, 나는 완전히 당신과 동의 : 방공호에 설치된 매뉴얼 페이지를 참조해야합니다 자신의 시스템을.
don_crissti

2
@don_crissti 또는 맨 페이지가 설치되어 있지 않은 서버에있는 경우가 있습니다.
runlevel0

내 매뉴얼 페이지는 FreeBSD에서 온 경향이 있습니다. 내가 접근 할 수있는 리눅스 VM이 없다면 말이다. 그리고 저는 대부분의 질문이 GNU / Linux 기반이라는 인상을 받았습니다.
Hennes

3
또한 프로그래머 / 파워 유저로서 비교적 경험이 부족한 사용자를위한 압도적이며 종종 엉뚱한 매뉴얼 페이지를 출력하는 것 외에도, 매뉴얼 페이지에서 다루지 않는 새로운 솔루션을 찾고 있습니다. 예를 들어 (지금), 'find'명령 출력에 대한 특정 날짜 형식입니다. 맨 페이지에는 각 변수 앞에 "% T"를 입력하라는 메시지가 표시되지 않습니다. 하루 종일 그것을 알아 내려고 노력할 수 있습니다. (또는 그냥 제공하십시오.) Stack Exchange를 검색하면 첫 번째 결과에서 명확하게 설명 된 해답을 얻을 수 있습니다.
Jim

0

Barrett 2012는 74 페이지에 다음과 같이 말합니다.

"-printfstring C 라이브러리 함수 방식으로 대체를 적용 할 수있는 주어진 문자열을 인쇄하십시오 printf()."

물론 전체 옵션 목록에 대한 맨 페이지를 권장합니다. 같은 것들이 find . -printf '%s %p\n'설명되지만 다른 사람들은 그렇지 않습니다. @jim의 사용을 언급했습니다 %T. 나는 개인적으로 find . -printf '%T@ %p\n'그것이 무엇인지 이해하지 못하고 비슷한 줄을 가진 스크립트를 개인적으로 사용합니다 %T@. 맨 페이지에없는 이러한 옵션에 대한 설명 소스를 참조 할 수있는 사람이 있습니까?


1
이 바렛 사람은 누구입니까?
Kusalananda

@Kusalananda, Daniel J. Barrett, "Linux Pocket Guide"의 저자, ​​인용문 페이지는 두 번째 버전을 나타냅니다. 라이브러리를 실행하기 전에이 질문에 대한 해결책을 찾을 수 없다는 경고를 받으십시오. 그렇지 않으면 아주 좋은 가이드입니다.
choklo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.