How to set archive bit on FAT32 in Linux
And you have to make a ~/.mtoolsrc file, see here.
Running without root didn’t work, then with sudo tried opening a floppy drive that doesn’t exist, so I copied ~/.mtoolsrc to /root, and used sudo su.
I assume it worked, didn’t say anything.
Oh yeah, spaces don’t seem to work. Says it can’t find the file if there’s a space.
Goldleaf doesn’t appear to support splitted NSPs, neither does the installer from TX. Copying it with Goldleaf might of been a mistake, frozen. Copying to the Tinfoil folder, not sure I still have Tinfoil on my card.
If Tinfoil doesn’t detect it, then the archive bit isn’t set. Do you need it on all the files or just the folder?
You can only copy and paste on the Switch homebrew, so I turned it off, and moved it on my computer, instantly, and set the archive bit for the folder and all the files in it. Well, now Goldleaf detected it as a NSP, and is installing it.
You can put the NSPs anywhere with Goldleaf, it has a file browser.
What I need to do, is make a script, that’ll put the archive bit on the folder specified and all files inside it.
But I got to go to bed after it’s done installing.
#!/usr/bin/bash LETTER="S" DPATH="/path/to/drive/" FILES=`ls "$1"` NPATH="$" mattrib +a "$LETTER:/$NPATH" while read -r line; do mattrib +a "$LETTER:/$NPATH/$line" doneThere's a small Bash script, that'll set the archive bit on the folder you pass to it, use the full path. Does all the files in that folder too.
Complaints?
Recent Posts
Archives
- July 2023 (29)
- June 2023 (45)
- May 2023 (55)
- April 2023 (34)
- March 2023 (29)
- February 2023 (17)
- January 2023 (3)
- December 2022 (12)
- November 2022 (6)
- October 2022 (6)
- September 2022 (1)
- August 2022 (1)
- May 2022 (3)
- March 2022 (1)
- February 2022 (2)
- December 2021 (3)
- June 2021 (1)
- April 2021 (1)
- July 2020 (1)
- June 2020 (1)
- May 2020 (1)
- April 2020 (2)
- February 2020 (1)
- December 2019 (1)
- November 2019 (43)
- October 2019 (32)
- September 2019 (29)
- August 2019 (9)
- July 2019 (270)
- June 2019 (330)
- May 2019 (183)
- April 2019 (244)
- March 2019 (244)
- February 2019 (236)
- January 2019 (285)
- December 2018 (318)
- November 2018 (253)
- October 2018 (172)
- September 2018 (8)
- June 2018 (1)
- April 2018 (14)
- January 2018 (2)
- November 2017 (2)
- September 2017 (1)
- August 2017 (1)
- July 2017 (1)
- March 2017 (1)
- November 2016 (2)
- September 2016 (7)
- August 2016 (2)
- July 2016 (4)
- June 2016 (8)
- May 2016 (13)
- April 2016 (3)
- February 2016 (5)
- January 2016 (2)
- December 2015 (9)
- September 2015 (27)
- August 2015 (223)
- July 2015 (263)
- June 2015 (166)
- May 2015 (52)
Архивирование файлов в Linux
В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: Windows, Mac или Linux. Это могут быть программы, резервные копии систем или баз данных или просто архив файлов. Нам также часто приходится создавать свои архивы в Linux, чтобы передать несколько файлов друзьям или загрузить на файлообменник. В виде архивов распространяются пакеты программ, исходные коды, а также много других файлов, распространяемых на просторах интернета. Научиться выполнять архивирование файлов в Linux через терминал очень важно, возможно это вам понадобиться, когда не будет доступа к графическому интерфейсу, или просто со временем в терминале станет более приятно работать.
В этой инструкции я хочу подробно рассмотреть утилиты для архивирования в Linux, мы рассмотрим не только самую популярную и универсальную утилиту - tar, но и другие менее известные, а также популярные алгоритмы сжатия.
Архивирование в Linux
Важно отметить, что архивирование в linux это не одно и то же что и сжатие файлов linux. Архивирование - это объединение нескольких небольших файлов в один, с целю более удобной последующей передачи, хранения, шифрования или сжатия. Как я уже сказал, архивация выполняется специальными утилитами. Мы не будем трогать архивацию файлов в графическом интерфейсе, вы с ними разберетесь сами, наша тема - терминал.
Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов. Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для только что созданного архива поддерживается в tar и других подобных программах с помощью специальных опций.
Также полезной возможностью архивации есть шифрование. Но теперь давайте рассмотрим какие существуют утилиты, с помощью которых выполняется архивирование файлов linux и как ими пользоваться.
Tar
Tar - это стандартная утилита, с помощью которой выполняется архивирование файлов Linux. Постепенно из небольшой программы архивации она превратилась в мощный инструмент, поддерживающий работу со многими вариантами архивов и алгоритмами сжатия. Программа поддерживает большое количество параметров. Давайте рассмотрим ее синтаксис и основные параметры:
$ tar опции f файл_для_записи /папка_файлами_для_архива
А теперь разберем основные опции:
- A - добавить файл к архиву
- c - создать архив в linux
- d - сравнить файлы архива и распакованные файлы в файловой системе
- j - сжать архив с помощью Bzip
- z - сжать архив с помощью Gzip
- r - добавить файлы в конец архива
- t - показать содержимое архива
- u - обновить архив относительно файловой системы
- x - извлечь файлы из архива
- v - показать подробную информацию о процессе работы
- f - файл для записи архива
- -C - распаковать в указанную папку
- --strip-components - отбросить n вложенных папок
Теперь давайте рассмотрим архивирование файлов в Linux. Чтобы создать архив используйте такую команду:
tar -cvf archive.tar.gz /path/to/files
А чтобы распаковать архив tar linux:
Очень просто запомнить для упаковки используется опция c - Create, а для распаковки - x - eXtract.
Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:
tar -zcvf archive.tar.gz /path/to/files
Например, рассмотрим как заархивировать папку в Linux:
Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:
Также можно убрать сжатие:
Утилиты сжатия мы рассмотрим ниже.
Чтобы добавить файл в архив используйте:
tar -rvf archive.tar file.txt
Для извлечения одного файла синтаксис тот же:
tar -xvf archive.tar file.txt
Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:
tar -xvf archive.tar --wildcards '*.php'
По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:
tar -xvf archive.tar -C /path/to/dir
Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.
Shar
Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.
- -o - сохранять архив в файл вместо стандартного вывода
- -l - ограничить размер выходного файла
- -L - ограничить размер выходного файла и разбить его на части
- -n - имя архива не будет включено в заголовок
- -a - разрешить автоматическую генерацию заголовков
Примеры использования shar для того чтобы заархивировать папку linux:
shar file_name.extension > filename.shar
Ar
ar - утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.
- - d - удалить модули из архива
- - m - перемещение членов в архиве
- - p - напечатать специфические члены архива
- - q - быстрое добавление
- - r - добавить члена к архиву
- - s - создать индекс архива
- - a - добавить новый файл к существующему архиву
Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:
ar cr libmath.a substraction.o division.o
Теперь извлечем файлы из архива:
Таким образом, можно распаковать любую статическую библиотеку.
Cpio
cpio - означает Copy in and out (скопировать ввод и вывод). Это еще один стандартный архиватор для Linux. Активно используется в менеджере пакетов Red Hat, а также для создания initramfs. Архивация в Linux для обычных файлов с помощью этой программы не применяется.
- -a - сбросить время обращения к файлам после их копирования
- -A - добавить файл
- -d - создать каталоги при необходимости
Пример использования. Создаем cpio архив:
ls | cpio -ov > /path/to/output_folder/obj.cpio
Архивирование папки linux выполняется также само.
Сжатие архивов в Linux
Как создать архив в linux рассмотрели. Теперь давайте поговорим о сжатии. Как я говорил, для сжатия используются специальные утилиты. Рассмотрим кратко несколько из них
Gzip
Чаще всего применяется Gzip. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:
$ gzip опции файл
$ gunzip опции файл
- -c - выводить архив в стандартный вывод
- -d - распаковать
- -f - принудительно распаковывать или сжимать
- -l - показать информацию об архиве
- -r - рекурсивно перебирать каталоги
- -0 - минимальный уровень сжатия
- -9 - максимальный уровень сжатия
Примеры использования вы уже видели в описании утилиты tar. Например, выполним сжатие файла:
Но чтобы сжать папку в Linux вам придется сначала заархивировать ее с помощью tar, а уже потом сжать файл архива с помощью gzip.
Bzip
bzip2 - еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.
Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:
В текущем каталоге будет создан файл file.bz2
Lzma
Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.
Xz
Еще один высокоэффективный алгоритм сжатия. Обратно совместимый с Lzma. Параметры вызова тоже похожи на Gzip.
Zip
Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.
$ zip опции файлы
$ unzip опции архив
- -d удалить файл из архива
- -r - рекурсивно обходить каталоги
- -0 - только архивировать, без сжатия
- -9 - наилучший степень сжатия
- -F - исправить zip файл
- -e - шифровать файлы
Чтобы создать Zip архив в Linux используйте:
Как видите архивирование zip в Linux не сильно отличается от других форматов.
Выводы
Теперь вы знаете все что нужно об архивации файлов в Linux. Мы рассмотрели только консольные команды, так сказать, чтобы была понятна суть. В графическом интерфейсе все еще проще. Если остались вопросы - задавайте их в комментариях.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.