Spočítejte počet výstupních řádků a uložte jej do proměnné, poté otestujte:
lines=$(find ... | wc -l)
if [ $lines -eq 0 ]; then
...
fi
Chcete použít najít příkaz uvnitř podmínka if , můžete zkusit tuto jednu vložku:
[[ ! -z `find 'YOUR_DIR/' -name 'something'` ]] && echo "found" || echo "not found"
příklad použití:
[prompt] $ mkdir -p Dir/dir1 Dir/dir2/ Dir/dir3
[prompt] $ ls Dir/
dir1 dir2 dir3
[prompt] $ [[ ! -z `find 'Dir/' -name 'something'` ]] && echo "found" || echo "not found"
not found
[prompt] $ touch Dir/dir3/something
[prompt] $ [[ ! -z `find 'Dir/' -name 'something'` ]] && echo "found" || echo "not found"
found
Odchod 0 je snadný s hledáním, odchod>0 je těžší, protože k tomu obvykle dochází pouze s chybou. Můžeme to však provést:
if find -type f -exec false {} +
then
echo 'nothing found'
else
echo 'something found'
fi
Intermittent OSError:[Errno 7] Příliš dlouhý seznam argumentů s krátkým příkazem (~125 znaků)
linux-shell:přejmenování souborů na čas vytvoření