] Внутри tar много файлов «._» [дубликат]

tar

Существует множество возможностей, как это сделать. Обычный способ, который, как я видел, люди использовали с давних пор, заключался в создании сценария, который содержит всю их конфигурацию только tar ; затем они просто загружают файл tar и распаковывают. Он может включать файл с именем myconf с таким содержимым, как:

.vimrc
.bashrc
.profile
.xinitrc
.vifm
.xmonad

Затем вы запускаете

tar -czvf myconf.tgz -T myconf

Download на другом компьютере и распаковываете.

Проблема с этим подходом всегда заключалась в полноте файлов. Например: вы работали на машине A и там вы создали свой .vimrc , затем вы работали на машине B (на которую вы скопировали свою конфигурацию) и обновили .vimrc . Когда вы вернулись к машине A, вам нужно было скопировать конфигурацию с машины B. После того, как были задействованы десятки машин, произошел беспорядок.


nfs

Я также видел, как для этой цели использовались средства монтирования NFS. Либо сохраняя все каталоги / home , либо сохраняя файлы конфигурации, на которые пользователи устанавливали программные ссылки.

NFS-монтирование работает намного лучше, чем tar копирование и копирование, но имеет свои проблемы: если вам нужно работать на машинах, на которых у вас нет root-доступа, монтирование не подходит. Более того, создание монтирования NFS через Интернет может оказаться медленным.


github (или bitbucket, или gitlab)

Это мой любимый. С появлением бесплатных и легкодоступных репозиториев исходного кода люди продолжали искать новые способы использования VCS s. Вы можете использовать систему управления версиями кода в качестве держателя файлов конфигурации.

Создайте репозиторий, содержащий ваши сценарии конфигурации и git clone (или hg , или svn , как вам больше нравится) на используемых вами машинах. Вы можете зафиксировать и отправить обратно в репозиторий при обновлении конфигурации и синхронизировать ее на других машинах при переключении на них.

С другой стороны, эта опция не обходится без собственного набора проблем:

  • Не создавайте репозиторий исходного кода непосредственно в вашем домашнем каталоге, некоторые VCS не хотят иметь исходный код деревья внутри других исходных деревьев. Создайте дополнительный каталог в вашем доме для хранения репозитория (хорошее название для него может быть myconf или rc ) и мягко связать нужные файлы (например, ln - s rc / .vimrc ~ / .vimrc ).

  • Никогда не отправляйте ключи API или другие данные, которые должны быть конфиденциальными, в общедоступный исходный репозиторий. Github отправляет вам предупреждение по электронной почте, если вы нажимаете что-то, похожее на ключ API, что, вероятно, является хорошим показателем того, как часто это происходит в репозиториях github.

8
09.05.2016, 17:08
3 ответа

Насколько я понимаю, tar --exclude = '._ *' -cvf newTar. должен работать: Finder создает файлы ._ * , но newTar не должен их содержать.

Но вы можете полностью обойти эти файлы, вызвав tar в режиме сквозной передачи. Например, чтобы скопировать только файлы из oldTar , которые находятся в some / path , используйте

tar -cf newTar --include='some/path/*' @oldTar
12
27.01.2020, 20:08

._ файлы - это то, как OS X bsdtar обрабатывает специфичные для OS X расширенные атрибуты и вилки ресурсов. (Это механизм, известный как AppleDouble, и на самом деле он применяется не только к архивам TAR, поскольку он находится в нескольких форматах хранения, где нет собственного механизма для хранения вилок ресурсов MacOS и информации Finder.)

Чтобы они не были добавлены в ваши файлы tar, вы можете передать COPYFILE_DISABLE = 1 в качестве переменной среды в tar.

COPYFILE_DISABLE = 1 tar cf newTar.tar / your / files

27
27.01.2020, 20:08

Эти файлы, начинающиеся с "._ *", являются файлами индикаторов местоположения Apple согласно ЭТОЙ ЗАПИСИ , и вы, очевидно, не можете избавиться от них, войдя в свой терминал в OSX, опять же согласно на той же странице. Вам нужно загрузить файл в операционную систему, отличную от Apple, избавиться от этих файлов и снова заархивировать их. Кажется, это единственное решение.

2
27.01.2020, 20:08

Теги

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