измеряет время компиляции GCC
$> time ./configure
$> time make depend
$> time make
$> time make install
Утилита Утилита обеспечивает статистику при компиляционном времени для вашей системы. После того, как вы построете с утилитой измерения времени, вы можете проверить размер вашего каталога с:
Размер построения измерения
$> DIRECTORY="/source/compiler/output/directory"
$> du -m $DIRECTORY
Это действительно имеет значение, где вы строите?
Нет, это просто еще один Война , что разработчики занимаются ... это просто $ путь. Скомпилируйте его в / tmp /, / opt /, / home /, / root /, в любом месте: это вопрос предпочтений.
Я делаю вещи в / opt / src / потому что я сохраняю исходный код, потому что я изменяю его для моего конкретного требования.
Оценка
Я оцениваю ваше время компиляции не должно проходить за 2 часа.
Оценка компиляционного времени - это аналитический процесс исследования того, как долго требуется другие люди, чтобы составить источника, у которых есть подобные процессоры (I.E., Intel) и делают какую-то грубую математику, которая вряд ли научная.
Время компиляции пользователей для вина на более быстрый процессор
Как я получен ответ:
a) четырехъядерный процессор Intel с 4 потоками. против. Б) двухъядерный процессор с 2 потоками.
В то время как пользователь A умеет компилировать с 4 процессами GCC, вы можете использовать только 2.
просто умножить свое время (15 минут) раз 2, чтобы учесть снижение потока ... Тогда умножу на 2 Компенсируйте многочисленные переменные вовлеченные (то есть версии компилятора), я придумаю 2 часа.
Вышеупотешаемое в блоге, всегда содержит обновления на состоянии ориентиров GCC. Вы также можете настроить вашу версию GCC, понимая, как время компиляции относительно между версиями.
Оценка размера пакета
добавляет размер скомпилированного двоичного размера размером скомпилированных зависимостей. Вино на самом деле будет компилировать без зависимостей.
Скрипт, который устанавливает винные зависимости и содержит полное вино в списке DEP
пример пакетов вина и вина-разработки в репозитории распределения
Другой ответ, который я сделал о создании вина из источника
, я знаю, что может показаться, Как будто я говорю вам посчитать все бобы, но в моем мире есть только бобы и сумки бобов, которые я обмениваюсь бобы между (наиболее профессионально).
Проблема заключается в том, что вы не можете использовать пространство вокруг =
. Оболочка очень придирчива к этому. И команды awk
полностью ошибочны.
Более того, в 2014 году лучше использовать $( )
, чем обратные ссылки. Так что строки awk
должны быть :
last_char1=$(echo "$2" | awk '{print $NF}' FS='')
last_char2=$(echo "$3" | awk '{print $NF}' FS='')
Страница человека
в найти
говорит об -ctime
:
-ctime n
File's status was last changed n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file status change times.
и это о -atime
:
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
Поэтому следует ожидать, что -ctime 1
удалит файлы, которые были изменены 1 день назад или более на основе округления, и установить для них значение -ctime + -1
, чтобы получить нужный эффект.
Чтобы предотвратить удаление самого /var/tmp
, также укажите -менталитет 1
и, экспериментируя всегда сначала распечатывать каталоги найти
идти на работу на:
find /var/tmp -mindepth 1 -type d -ctime +-1 -print
, прежде чем делать разрушительное:
find /var/tmp -mindepth 1 -type d -ctime +-1 -exec rm -rf {} +
(я бы использовал +
вместо ;
нет необходимости вызывать rm (В качестве альтернативы можно посмотреть на использование -delete
вместо использования -exec rm....
но в этом случае найти
также потребуется удалить файлы в этих каталогах, оставив файлы непосредственно в /var/tmp
)
Оба перенаправляют stdout в файл.
ls > list
Если файл существует, он будет заменен.
ls >> list
Если файл не существует, он будет создан. Если он существует, он будет добавлен в конец файла.
Подробнее: Перенаправление ввода-вывода
-121--24504- Существует несколько проблем со сценарием. Места вокруг =
не должно присутствовать, одинарные кавычки '
не являются парными, и дополнительно для awk -F
требуется параметр - разделитель полей, поэтому лучше написать awk -F "' {if (NF > 1) {print $ NF}} '
.
Но на самом деле, если вы используете любую разумную оболочку, как bash
или zsh
, то вы можете просто написать
cat "${ap_src_path}/${1}*" > "${ap_dest_path}/comnp.dat"
без необходимости последних символов и все те , если
условия. Возможные дополнительные /
просто игнорируются, так что, например, путь /var//log///mysql////mysql.log
идеально подходит для синтаксиса.
Переменное назначение в синтаксисе оболочки не разрешается иметь пробелы.
Last_Char = ...
- это команда, называемая Last_Char
с аргументами =
и ....
. Last_CHAR = ...
- это задание, которое хранит ...
в переменной оболочки Last_Char
.
Это гораздо более эффективный и прямой способ сделать то, что вы хотите:
case $2 in
*/) ap_src_path=$2;;
*) ap_src_path=$2/;;
esac
case $3 in
*/) ap_dest_path=$3;;
*) ap_dest_path=$3/;;
esac
Вам не нужно извлечь последний символ, чтобы сделать простое сравнение. Кроме того, замена команд неэффективна и неуклюжем для простых вариабельных манипуляций.
Более важно, вам не нужно ничего делать из этого вообще. По большей части разрешение пути UNIX не заботится о дублированных скольжениях , поэтому Путь /// к // a / file
так же, как правило, как путь / к / A / File
. В сценариях вы можете воспользоваться этим, просто не беспокоясь о дублировании /
. Другими словами, вы можете заменить весь сценарий с помощью
if [ $# -ne 3 ]; then
# ... same as above ...
fi
pattern=$1
ap_src_path=$2
ap_dst_path=$3
cat "$ap_src_path/$pattern"* > "$ap_dest_path/compn.dat"