Самый быстрый уклончивый способ начать при запуске Windows, состоит в том, чтобы запустить Linux как виртуальную машину.
Начальный пароль перечислен вместе со ссылкой на загрузку для образа диска. Обязательно измените его как можно скорее.
Предварительно созданные изображения являются замечательными для экспериментирования, так как Вы не должны проходить нормальный процесс установки. Вы можете дата скорости несколько дистрибутивов Linux в короткий срок. Однако, так как они внесены случайными интернет-пользователями, нет никакой гарантии их качества или законности. Для любой серьезной работы Вы захотите загрузить распространяемые носители и установить Linux сами, или как виртуальная машина или на самих аппаратных средствах.
Аромат Linux, который Вы выбираете, является делом вкуса. Ubuntu является разумным выбором для новичков, так как это все еще довольно популярно, и можно задать вопросы об этом на, Спрашивает Ubuntu.
/var/spool/myapp/tmp
и /var/spool/myapp/data
. Но потом приложение часто добавляет задачу cron
для очистки старых файлов в .../tmp
./tmp
- это просто удобное место для размещения файлов, и где-то, где вы можете быть уверены, будет произведена очистка (если, например, веб-приложение не смогло это сделать). Таким образом, это разумное значение по умолчанию.
Если у вас есть возможность указать свой собственный путь для загрузки файлов, то есть веская причина сделать это место таким же путем, как и конечное место назначения, так как тогда вы можете использовать атомарное переименование для того, чтобы поставить его на конечное место. (Если его кросс-монтировать, вам нужно сделать копию)
Я бы не стал загружать его в конечное место назначения, так как (например) если бы загрузка была прервана посередине, вы могли бы остаться с частичным файлом там. Или, если ваш скрипт умрет, вы можете остаться с неполным файлом, на который не ссылается ваша база данных.
BTW: Помните, что имя файла, предоставленное клиентом, является недоверенными данными. Вредоносный пользователь может легко дать вам имя файла .../.../.../something
, и если вы не будете осторожны, вы можете закончить запись на что-то, на что не намереваетесь.
При записи 2 > & 1
вы говорите «стандартная ошибка переходит к стандартному выводу».
Давайте сломаем это.
Сначала необходимо запомнить стандартную ошибку 2
, а стандартный вывод - 1
.
Так что у вас есть 2
что-то 1
.
«goes to» записывается >
.
Итак, у вас есть 2 >
что-то 1
.
2 > имя файла
означает отправку стандартной ошибки в имя файла
. Но вы не хотите отправлять его в файл с именем 1
. Вам нужно другое: номер файла, который уже открыт. Вот для чего предназначены и
.
Поэтому 2 > & 1
.
Вы также можете думать об этом так, как вы делали задание, где >
подобен равному и &
подобен $
, сравните:
f=$1
2>&1
Чтобы понять командную строку с несколькими перенаправлениями, важно знать, что перенаправления сделаны слева направо. Для получения дополнительной информации см. Порядок перенаправлений .
-121--34079- Есть много способов сделать это, вот решение с gawk 4 .x
:
$ awk '
FNR < 2 { next }
FNR == NR {
for (i = 2; i <= NF; i++) {
a[$1][i] = $i;
}
next;
}
($1 in a) {
for (i = 2; i <= NF; i++) {
if (a[$1][i] == $i) {
printf("%s->Col%d: Equal\n", $1, i-1);
} else {
printf("%s->Col%d: Not Equal\n", $1, i-1);
}
}
}
' file1.txt file2.txt
row2->Col1: Not Equal
row2->Col2: Not Equal
row2->Col3: Not Equal
row1->Col1: Not Equal
row1->Col2: Not Equal
row1->Col3: Not Equal
Объяснение
FNR < 2 {next}
: пропустить первые две строки FNR = = NR
: верно только при обработке первого файла. Каждое значение столбца сохраняется в ассоциативном массиве a
с формой a [ROW] [COLUMN]
. ($1 в a)
: проверьте, существует ли строка в file2 в file1. Если значение равно true, мы пролистываем все его значения столбца, сравниваем со значением в file1. В более старой версии gawk
вы можете попробовать:
$ awk '
FNR < 2 { next }
FNR == NR {
for (i = 2; i <= NF; i++) {
a[i,$1] = $i;
b[$1];
}
next;
}
($1 in b) {
for (i = 2; i <= NF; i++) {
if (a[i,$1] == $i) {
printf("%s->Col%d: Equal\n", $1, i-1);
} else {
printf("%s->Col%d: Not Equal\n", $1, i-1);
}
}
}
' file1.txt file2.txt
-121--120368- Это действительно зависит от того, что еще на системе и как вещи используются.
В некоторых системах /tmp
обычно используется для системных файлов или пространства подкачки. При заполнении /tmp
в Solaris происходит плохое ( и связанный анекдот ). В таком случае, если кто-то загрузит файл, заполняющий этот том, это может привести к сбою системы. Другие вещи, которые могут произойти, некоторые приложения не смогут писать свои собственные временные файлы.
В старые дни можно было разумно доверять людям, чтобы они не были глупыми (по крайней мере, вне сентября), и злоба была достаточно низкой. Сегодня... это совсем другая история.
Преимущество при записи на /tmp
состоит в том, что гарантировано наличие локальной файловой системы на компьютере, ее присутствие и патрулирование (сценарии, которые будут автоматически обходить и удалять старые файлы). Системы нуждались в a /tmp
для загрузки и быстрый доступ к этому был необходим для разумной производительности системы. Таким образом, вы хотите быстро записать файл где-нибудь и затем сдвинуть его с места? Поместите его в /tmp
.
С помощью этого бита о плохих вещах, происходящих, когда /tmp
заполнен,следует посмотреть на другие альтернативы, которые обеспечивают то же преимущество - например, создание раздела, который монтируется для загрузки файлов в, который не приведет к аварийному завершению работы машины, когда все заполнено.
Однако другое соображение заключается в том, что «быстрый» бит. Диски стали быстрее с днями старых. Немного быстрее - хороший твердотельный накопитель может выбросить все, что угодно... но действительно ли вам нужен твердотельный накопитель для записи загрузочных файлов? Не только погружения стали быстрее, но и сеть стала быстрее. Запись файлов загрузки в сетевую область места хранения может помочь в одной точке, где вы можете иметь несколько систем загрузки их файлов в центральное место, где другие процессы могут затем взять на себя ответственность за сканирование и перемещение их в надлежащее место.
Так что... подытожить:
Так что, я бы сказал, нет... больше не записывать в /tmp
в качестве ответа по умолчанию. Обратитесь к системному администратору за информацией о правильном месте для записи их в соответствии с политикой использования дисков и рассмотрите возможность их записи в место, полностью удаленное от локальной системы.