ディレクトリ内の最大のファイルを探し、変数にファイル名を設定します。

ディレクトリ内の最大のファイルを探し、変数にファイル名を設定します。

指定されたディレクトリで最大のファイルを見つけ、その答えを変数に入れたいと思います。

使用して:

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

質問にタグ付けしましたが、bashifzshはオプションです。

print -rv var1 *(.OL)

関連情報