Автоматизация скрипта bash для переименования файлов

Детали алгоритмов не относятся к теме здесь1, поскольку они никоим образом не характерны для Linux, не говоря уже о Ubuntu. Вы, однако, найдете здесь приятную информацию.

Теперь, когда вы сказали tar, tar не является и никогда не был программой сжатия. Вместо этого это архиватор; его основная цель - сделать один большой файл из множества маленьких. Исторически это было облегчение хранения на ленточных накопителях, отсюда и название: Tape ARchive.

Сегодня основной причиной использования tar является уменьшение количества файлов в вашей системе. Каждый файл в файловой системе Unix занимает здесь , чем больше у вас файлов, тем меньше доступных inodes и когда вы закончите inodes, вы больше не сможете создавать новые файлы. Проще говоря, то же количество данных, хранящихся в виде тысяч файлов, будет занимать больше вашего жесткого диска, чем те же самые файлы в одном tar-архиве.

Чтобы проиллюстрировать это, поскольку это было оспарировано в комментирует мой раздел 68G /, у меня есть следующее количество общего и используемого inodes (помните, что количество счетчиков inode зависит от типа файловой системы и размера раздела):

Inode count:              393216
Free inodes:              171421

[d8 ] Если теперь я попытаюсь создать больше файлов, чем у меня есть inodes:

$ touch {1..171422}
touch: cannot touch ‘171388’: No space left on device
touch: cannot touch ‘171389’: No space left on device
touch: cannot touch ‘171390’: No space left on device
touch: cannot touch ‘171391’: No space left on device
touch: cannot touch ‘171392’: No space left on device
touch: cannot touch ‘171393’: No space left on device
touch: cannot touch ‘171394’: No space left on device
touch: cannot touch ‘171395’: No space left on device
touch: cannot touch ‘171396’: No space left on device
touch: cannot touch ‘171397’: No space left on device

Нет места? Но у меня много места:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       5,8G  4,3G  1,2G  79% /

Как вы можете видеть выше, создание нескольких сотен тысяч пустых файлов быстро истощает мои inodes, и я больше не могу создавать новые. Если бы я был tar, я мог бы снова начать создавать файлы.

Имея меньше файлов, также значительно ускоряется ввод / вывод файловой системы, особенно в подключенных файловых системах NFS. Я всегда сменяю старые каталоги работы, когда проект завершен, так как у меня меньше файлов, более быстрые программы, такие как find, будут работать.

На Super User есть большой ответ, который идет гораздо более подробно, но в дополнение к вышесказанному, другие основные причины, по которым tar по-прежнему популярны сегодня:

Эффективность: использование tar для передачи через программу сжатия, например gzip, более эффективно, поскольку позволяет избежать создания промежуточных файлов. tar поставляется со всеми видами колоколов и свистков, которые были разработаны за долгую историю, что делает его особенно полезным для резервных копий * nix (думаю, разрешения, владение файлами, возможность напрямую передавать данные на STDOUT и через ссылку SSH ...) Инерция. Мы привыкли tar. Можно с уверенностью предположить, что он будет доступен на любом * nix, который вы могли бы использовать, что делает его очень портативным и удобным для архивов исходного кода.

1 Это абсолютно верно и не имеет ничего общего с тем фактом, что я не знаю достаточно о них, чтобы объяснить:) [!d22 ]

1
задан 3 October 2016 в 19:48

0 ответов

Другие вопросы по тегам:

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