Должно быть что-то с Вашей средой, потому что, когда я пробую тот же пример, я получаю ожидаемые результаты. Например:
# command #1
$ (time echo "hi") 2>> measures.txt
hi
$ cat measures.txt
real 0m0.000s
user 0m0.000s
sys 0m0.000s
# command #2
$ (timeout 1s time echo "hi") 2>> measures.txt
hi
$ cat measures.txt
real 0m0.000s
user 0m0.000s
sys 0m0.000s
0.00user 0.00system 0:00.05elapsed 0%CPU (0avgtext+0avgdata 552maxresident)k
56inputs+0outputs (1major+173minor)pagefaults 0swaps
Вместо того, чтобы структурировать Вашу команду как 2 отдельных вызова, почему бы не это как так:
(
time ./minisat+_64-bit_static opb_clauses.txt
timeout 1s time ./minisat+_64-bit_static opb_clauses.txt
) 2>>../measures.txt
find . -type f -name '[a-k]*'
или (быть в безопасности против проблем с локалом)
find . -type f -name '[abcdefghijk]*'
Просто используйте оболочку Globbing (тест: ECHO [A-K] *
). Вам обычно нужно повторять файлы, поэтому обычный рисунок для файла в [A-K] *; сделай что-нибудь; сделано
. Никогда не используйте LS
для итерации.
Полезно прочитать: http://mywiki.woolegege.org/parsingls
Просто для справки, с ZSH: (И не попасть в Ls / echo / etc. Нить)
Показать простой файлы в текущем каталоге:
ls [a-k]*(.)
Отображение всех типов файлов в текущем каталоге:
ls -d [a-k]*
Один и тот же рекурсивно:
ls -d -- **/[a-k]*(.)
(не глядя внутрь скрытые каталоги) и
ls -d -- **/[a-k]*
- Быть более конкретным, поскольку было не ясно, было ли отображение текущих файлов каталога или системных файлов, вы можете использовать один из определенных режимов.
ls -d [a-k] * -> Для отображения файлов / каталогов текущего местоположения / папки / папки.
ИЛИ
Найти / -type f -name '[k]' * -> Чтобы отобразить каталоги файлов / целых системных каталогов и запомнив, что разница здесь будет то, что скрытые элементы не отображаются, как и с таким образом, уже показано.
find . -type f -name '[a-k]*'
Если используется команда «LS», чтобы также просмотреть скрытое использование этого режима.
ls -da [a-k]*
Вы можете использовать функцию командной строки Bash .
$ ls -l [a-k]*
[A-K]
относится к алфавитам из A
к K
.
*
относится к любому характеру любое количество раз.
Так что теперь Bash ищет файлы, начиная с буквы A
- k
и с последующим любым символом любое количество раз.