Ну, насколько я знаю, вы не можете, разрешение окна терминала основано на пропорциях символов ... Поэтому, если вы измените размер шрифта, окно терминала изменится на размер, чтобы оно соответствовало доля этого шрифта ...
Сначала это звучит немного глупо, но, учитывая, что терминал просто отображает только текстовые символы, имеет смысл, если окно имеет размер по пикселям, вы бы часто в конечном итоге с пустым пространством, когда размер окна точно не соответствует границе символа ...
Пусть find сделает вам тяжелую работу. Напишите сценарий, обрабатывающий файл, переданный в качестве первого параметра, а затем сделайте это в своем crontab:
find /wherever -iname 'fedex*.xls' -exec your-script "{}" \;
find не будет генерировать никакого вывода, если он не найдет файлы, соответствующие выражению. [ ! d1]
Python кажется удобным вариантом, если я не пропущу точку:
#!/usr/bin/env python3
import subprocess
import os
myfullpath = "/home/jacob/Bureaublad"
files = [f for f in os.listdir(myfullpath) if f.endswith(".xlsx")]
for f in files:
cmd = "gedit"
subprocess.check_call(["/bin/bash", "-c", cmd])
Если вы посмотрите на https://stackoverflow.com/questions/2937407/test-whether-a-glob-has-any-matches-in-bash, что-то вроде этого должно работать:
cd "$myfullpath/input/"
if test -n "$(shopt -s nullglob; echo fedex*.xlsl)"
then
for file in fedex*.xlsl
do
fullfile="$myfullpath/input/$file"
# things
done
fi
... Посмотрите также на https://stackoverflow.com/questions/2937407/test-whether-a-glob-has-any-matches-in-bash
Если вы все равно используете ls, несмотря на непригодность для своего исходного кода, или если вы:
вы можете проверить его код выхода. «Нет такого файла ...» не удастся (код выхода 2). Хотя даже пустая директория ls будет успешной (код выхода 0):
$ ls *.xls
ls: cannot access *.xls: No such file or directory
$ echo $?
2
$ ls
$ echo $?
0
Почему бы не использовать команду find, поместив одно имя файла в каждую строку:
for fullfile in $(find <dir> -name '*.xslx'); do
# fullfile now contains the full filename, including any spaces
# process to your heart's content, using double quotes (") around $fullfile to
# make sure the spaces are kept intact
cp "$fullfile" /new/directory/
end