指定されたディレクトリで最大のファイルを見つけ、その答えを変数に入れたいと思います。
使用して:
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
質問にタグ付けしましたが、bash
ifzsh
はオプションです。
print -rv var1 *(.OL)