Команда оболочки для каталога tar, исключая определенные файлы / папки

Я знаю, что это старый вопрос, но он появился первым в моем поиске Google по этому же вопросу, хотя я знал ответ, который я просто хотел, чтобы что-то копировать и вставлять. Что делает его полезным для дальнейшего ответа. Итак, вот что работает для меня:

Установите rtools , затем:

install.packages(path_to_file, repos = NULL, type="source")

717
задан frank 20 June 2019 в 04:52
поделиться

6 ответов

У вас может быть несколько опций исключения для tar, поэтому

$ tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .

и т. Д. Будут работать. Убедитесь, что помещает - исключить перед исходным и целевым элементами.

966
ответ дан 22 November 2019 в 21:26
поделиться

Лучше всего использовать find с помощью tar через xargs (для обработки большого количества аргументов). Например:

find / -print0 | xargs -0 tar cjf tarfile.tar.bz2
1
ответ дан 22 November 2019 в 21:26
поделиться

Используйте команду find вместе с опцией tar append (-r). Таким образом, вы можете добавлять файлы в существующий tar за один шаг вместо двухпроходного решения (создать список файлов, создать tar).

find /dir/dir -prune ... -o etc etc.... -exec tar rvf ~/tarfile.tar {} \;
4
ответ дан 22 November 2019 в 21:26
поделиться

Вы можете использовать cpio (1) для создания файлов tar. cpio берет файлы в архив на стандартный ввод, поэтому, если вы уже определились с командой find, которую хотите использовать для выбора файлов в архиве, передайте ее в cpio для создания tar-файла:

find ... | cpio -o -H ustar | gzip -c > archive.tar.gz
2
ответ дан 22 November 2019 в 21:26
поделиться

Вы можете исключить каталоги с помощью - exclude для tar.

Если вы хотите заархивировать все, кроме / usr , вы можно использовать:

tar -zcvf /all.tgz / --exclude=/usr

В вашем случае, возможно, что-то вроде

tar -zcvf archive.tgz arc_dir --exclude=dir/ignore_this_dir
129
ответ дан 22 November 2019 в 21:26
поделиться

Я нашёл это где-то в другом месте, так что не хочу приписывать себе заслуги, но это сработало лучше, чем любое из вышеприведённых решений для моих макроспецифических выпусков (даже если это закрыто):

tar zc --exclude __MACOSX --exclude .DS_Store -f <archive> <source(s)>
10
ответ дан 22 November 2019 в 21:26
поделиться
Другие вопросы по тегам:

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