디렉토리에서 가장 큰 파일을 찾아 변수에 파일 이름을 설정하십시오.

디렉토리에서 가장 큰 파일을 찾아 변수에 파일 이름을 설정하십시오.

지정된 디렉터리에서 가장 큰 파일을 찾아 그 답을 변수에 넣고 싶습니다.

사용하여:

find . -type f -printf "%s\t%p\n" | sort -n | tail -1 it

가장 큰 파일을 찾지만 모든 하위 디렉터리를 재귀적으로 검색합니다.

지정된 디렉터리만 검색하도록 만드는 방법은 무엇입니까?

파일 이름을 변수에 어떻게 넣을 수 있나요? ($var1)?

답변1

현재 디렉토리로 검색을 제한하려면 다음을 사용하십시오.-maxdepth 1

$ find . -maxdepth 1 -type f -printf "%s\t%p\n" | sort -n | tail -1
5359532 ./coreutils_8.30.orig.tar.xz

$ var1="$(basename $(find . -maxdepth 1 -type f  -printf "%s\t%p\n" | sort -n | tail -1 | awk '{print $NF}'))"
$ echo "$var1"
coreutils_8.30.orig.tar.xz

답변2

나는 노력할 것이다

#!/bin/bash 
biggest=$(ls -S -1 /specified/directory/ | head -n1) 
echo $biggest

$만 LS

-S     sort by file size, largest first
-1     list one file per line

$남자 머리

-n     print the first NUM lines

변수에 전체 경로를 포함하려면 다음을 시도하십시오.

ls -S -1 -d /specified/directory/* | head -n1

하지만, 그만 LS확실하지 않다

-d      list directories themselves, not their contents

답변3

질문에 태그를 달았지만 bashif zsh는 옵션입니다.

print -rv var1 *(.OL)

관련 정보