Хорошей вещью о Linux является источник, всегда где-нибудь. Можно загрузить или просмотреть основу e2fsprogs источники на kernel.org. Это может также зависеть от Вашей определенной версии и распределения хотя...
Из текущего кода похоже, что это - некоторое значение, добавленное к 20 на основе UUID раздела, если Вы имеете enable_periodic_fsck = 1
в Вашем mke2fs.conf
if (get_bool_from_profile(fs_types, "enable_periodic_fsck", 0)) {
fs->super->s_checkinterval = EXT2_DFL_CHECKINTERVAL;
fs->super->s_max_mnt_count = EXT2_DFL_MAX_MNT_COUNT;
/*
* Add "jitter" to the superblock's check interval so that we
* don't check all the filesystems at the same time. We use a
* kludgy hack of using the UUID to derive a random jitter value
*/
for (i = 0, val = 0 ; i < sizeof(fs->super->s_uuid); i++)
val += fs->super->s_uuid[i];
fs->super->s_max_mnt_count += val % EXT2_DFL_MAX_MNT_COUNT;
} else
fs->super->s_max_mnt_count = -1;
:#define EXT2_DFL_MAX_MNT_COUNT 20
Всегда хороший для наблюдения 'топорных' слов и 'взлом' в коде =)
Я бы предпочел вызвать sed
только один раз, затем в каждой итерации строки. Если вы хотите изменить исходный файл, вы можете добавить опцию -i ( --по месту ) в sed
.
unset n
while read -r line; do
echo $line
: $((n++))
done < myfile.txt
sed "1,$n d" myfile.txt
-121--65125- То, как вы это делаете, с сжатием файла .tar
ответ точно нет.
Что бы вы ни использовали для сжатия файла .tar
, он не знает о содержимом файла, он просто видит двоичный поток, и являются ли части этого потока несжатыми или минимально сжимаемыми, нет пути это известно. Не путайте с параметрами команды tar
для выполнения сжатия, tar --create --xz --file some.tar file1
так же «тупо», как и знание содержимого потока, как tar --create file1 | xz > some.tar
.
Вы можете делать несколько вещей:
.tar
, который позволяет сжимать на индивидуальной основе, но это неблагоприятно, если у вас много небольших файлов в одном каталоге, которые имеют похожие узоры (так как они сжимаются по отдельности). Формат застежки -молнии является примером, который может работать. tarfile
и bzip2
. Это также имеет недостатки пункта 1. И нет прямого извлечения из tar-файла, так как некоторые файлы выйдут сжатыми, которые могут не нуждаться в декомпрессии (так как уже были сжаты до резервного копирования). gzip
/ bzip2
/ xz
, чтобы они не пытались слишком сильно сжать поток, тем самым не тратя время на попытку получить другое сжатие 0,5%, которое не произойдет. Вы можете посмотреть на результаты параллельного сжатия xz
(не относящиеся к tar-файлам), чтобы увидеть некоторые результаты попытки ускорить xz
, опубликованные в моем блоге
bash
«знает» о symlinks и отслеживает эту информацию, когда вы используете symlink для ввода
Это можно проверить, выполнив следующие действия в примере:
$ cd /dir2
$ cd linked
$ pwd
/dir2/linked
$ PWD='' bash -c pwd
/dir1
Необходимо запустить bash с пустой переменной PWD
, в противном случае этот трюк используется для отображения «фальшивого» пути.
Обратите внимание, что ls
является отдельной программой и как таковой не обладает знаниями о том, как вы прибыли в текущий каталог, поэтому ls..
будет только показывать содержимое реального родительского каталога, а не относительно используемой symlink.
Большинство программ не зависит от переменной среды CWD
, поскольку существует множество способов запуска программ,через bash shell только один, так что это не надежно ожидать, что CWD
содержит правильное значение (попробуйте установить CWD
на что-то неправильное, прежде чем делать bash -c pwd
, вы можете видеть, что он проверяет значение на здравомыслие).