다음과 같이 find 명령을 실행하면 :
$ find . -name *.ear
다음과 같이 출력됩니다.
./dir1/dir2/earFile1.ear
./dir1/dir2/earFile2.ear
./dir1/dir3/earFile1.ear
명령 줄에 ‘인쇄’하고 싶은 것은 이름과 크기입니다.
./dir1/dir2/earFile1.ear 5000 KB
./dir1/dir2/earFile2.ear 5400 KB
./dir1/dir3/earFile1.ear 5400 KB
답변
find . -name '*.ear' -exec ls -lh {} \;
jer.drab.org의 답장에서 추가 된 h. 정신적으로 MB로 변환하는 시간을 절약합니다.)
답변
-exec 또는 -printf를 사용해야합니다. Printf는 다음과 같이 작동합니다.
find . -name *.ear -printf "%p %k KB\n"
-exec는 더 강력하고 임의의 명령을 실행할 수 있도록합니다. 따라서 ‘ls’또는 ‘wc’버전을 사용하여 다른 정보와 함께 파일 이름을 인쇄 할 수 있습니다. ‘man find’는 printf에 사용할 수있는 인수를 보여 주며, 파일 크기 이상을 수행 할 수 있습니다.
-printf는 공식 POSIX 표준이 아니므로 해당 버전에서 지원되는지 확인하십시오. 그러나 대부분의 최신 시스템은 GNU 찾기 또는 유사한 확장 버전을 사용하므로 구현 될 가능성이 높습니다.
답변
간단한 해결책은 find에서 -ls 옵션을 사용하는 것입니다.
find . -name \*.ear -ls
그러면 일반 “ls -l”형식으로 각 항목이 제공됩니다. 또는 찾고있는 특정 출력을 얻으려면 다음을 수행하십시오.
find . -name \*.ear -printf "%p\t%k KB\n"
파일 이름과 KB 단위의 크기를 제공합니다.
답변
gnu find를 사용하면 이것이 당신이 원하는 것이라고 생각합니다. 디렉터리 (-type f)가 아닌 모든 실제 파일을 찾고 각각에 대해 파일 이름 (% p), 탭 (\ t), 킬로바이트 (% k) 크기, 접미사 “KB”를 인쇄 한 다음 개행 (\ n).
find . -type f -printf '%p\t%k KB\n'
printf 명령이 원하는 방식으로 형식을 지정하지 않으면 exec를 사용하고 각 파일에서 실행할 명령을 사용할 수 있습니다. 파일 이름으로 {}를 사용하고 세미콜론 (;)으로 명령을 종료합니다. 대부분의 셸에서 이러한 세 문자는 모두 백 슬래시로 이스케이프되어야합니다.
다음은 “ls -lh”를 사용하여 파일을 찾아 인쇄하는 간단한 솔루션입니다. 이것은 사람이 읽을 수있는 형식 (킬로바이트의 경우 k, 메가 바이트의 경우 M)으로 크기를 표시합니다.
find . -type f -exec ls -lh \{\} \;
또 다른 대안으로 “wc -c”는 파일에있는 문자 수 (바이트)를 인쇄합니다.
find . -type f -exec wc -c \{\} \;
답변
find . -name '*.ear' -exec du -h {} \;
이것은 불필요한 모든 것 대신 파일 크기 만 제공합니다.
답변
Awk는 질문자가 요청한 것을 제공하기 위해 출력을 수정할 수 있습니다. 내 Solaris 10 시스템에서 find -ls는 두 번째 필드로 크기 (KB)를 인쇄합니다.
% find . -name '*.ear' -ls | awk '{print $2, $11}'
5400 ./dir1/dir2/earFile2.ear
5400 ./dir1/dir2/earFile3.ear
5400 ./dir1/dir2/earFile1.ear
그렇지 않으면 -exec ls -lh를 사용하고 출력에서 크기 필드를 선택합니다. 다시 Solaris 10에서 :
% find . -name '*.ear' -exec ls -lh {} \; | awk '{print $5, $9}'
5.3M ./dir1/dir2/earFile2.ear
5.3M ./dir1/dir2/earFile3.ear
5.3M ./dir1/dir2/earFile1.ear
답변
du -a를 사용하지 않는 이유는 무엇 입니까? 예
find . -name "*.ear" -exec du -a {} \;
Mac에서 작동
