Распечатайте последний знак в данном пути

измеряет время компиляции 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 Phoronix

Вышеупотешаемое в блоге, всегда содержит обновления на состоянии ориентиров GCC. Вы также можете настроить вашу версию GCC, понимая, как время компиляции относительно между версиями.

Оценка размера пакета

добавляет размер скомпилированного двоичного размера размером скомпилированных зависимостей. Вино на самом деле будет компилировать без зависимостей.

Скрипт, который устанавливает винные зависимости и содержит полное вино в списке DEP

пример пакетов вина и вина-разработки в репозитории распределения

Другой ответ, который я сделал о создании вина из источника

, я знаю, что может показаться, Как будто я говорю вам посчитать все бобы, но в моем мире есть только бобы и сумки бобов, которые я обмениваюсь бобы между (наиболее профессионально).

0
02.12.2014, 18:14
4 ответа

Проблема заключается в том, что вы не можете использовать пространство вокруг = . Оболочка очень придирчива к этому. И команды awk полностью ошибочны.

Более того, в 2014 году лучше использовать $( ), чем обратные ссылки. Так что строки awk должны быть :

last_char1=$(echo "$2" | awk '{print $NF}' FS='')
last_char2=$(echo "$3" | awk '{print $NF}' FS='')

check http://mywiki.wooledge.org/BashFAQ/082

2
28.01.2020, 02:13
last_char1=$(echo ${2:${#2}-1}); 
last_char2=$(echo ${3:${#3}-1}); 

if [[ "$last_char1" != "/" ]]; then 

Tips:

2
28.01.2020, 02:13

Страница человека в найти говорит об -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 )

-121--139862-

Оба перенаправляют 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 идеально подходит для синтаксиса.

2
28.01.2020, 02:13

Переменное назначение в синтаксисе оболочки не разрешается иметь пробелы. 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"
3
28.01.2020, 02:13

Теги

Похожие вопросы