Я подозреваю, что kpartx
не хранит никакого состояния, поэтому он не помнит, вызывали ли вы изначально /dev/loop0
или ему нужно было настроить петлевое устройство.
Судя по примерам на странице man
, losetup
довольно хорошо обрабатывается сценариями, так что не должно быть слишком много дополнительной работы, чтобы справиться с этой частью самостоятельно.
Чтобы ограничить поиск текущим каталогом, используйте-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
Я бы попробовал
#!/bin/bash
biggest=$(ls -S -1 /specified/directory/ | head -n1)
echo $biggest
$ человек лс
-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
Хотя вы пометили вопрос bash
, если zsh
является вариантом:
print -rv var1 *(.OL)