Как создать zip-архив целой директории через терминал без скрытых файлов?

aptitude way

С помощью aptitude вы можете просмотреть пакеты и посмотреть, были ли они установлены автоматически (как зависимость) или вручную установлены:

aptitude search '~i!~M'

К сожалению, много базовые / системные пакеты устанавливаются и помечены как установленные вручную после установки.

Минусы: перечислены некоторые системные пакеты, помеченные как установленные вручную.

Журнал истории событий

В качестве альтернативы, просмотрите журналы, которые APT хранит в течение 12 месяцев по умолчанию в /var/log/apt/history.log (и повернутых файлах). Используйте grep для фильтрации строк об установленных пакетах во всех файлах:

zgrep ^Install /var/log/apt/history.log*

Минусы: удаленные пакеты по-прежнему перечислены, только по умолчанию последние 12 месяцев истории.

190
задан 27 August 2011 в 23:01

56 ответов

Это также исключает скрытые файлы в незакрытых каталогах:

find /full_path -path '*/.*' -prune -o -type f -print | zip ~/file.zip -@
94
ответ дан 25 May 2018 в 19:07
  • 1
    Спасибо за Ваш ответ. Команда (find community-chess/ -path '*/.*' -prune -o -type f -print | zip ~/community-chess.zip -@) больше, чем ожидалось, но она отлично работает. Также включены подкаталоги, поэтому +1 и принятый ответ :-) – Martin Thoma 28 August 2011 в 14:17

Это также исключает скрытые файлы в незакрытых каталогах:

find /full_path -path '*/.*' -prune -o -type f -print | zip ~/file.zip -@
98
ответ дан 25 July 2018 в 21:24

Это также исключает скрытые файлы в незакрытых каталогах:

find /full_path -path '*/.*' -prune -o -type f -print | zip ~/file.zip -@
98
ответ дан 31 July 2018 в 11:28

Это также исключает скрытые файлы в незакрытых каталогах:

find /full_path -path '*/.*' -prune -o -type f -print | zip ~/file.zip -@
98
ответ дан 2 August 2018 в 03:03

Это также исключает скрытые файлы в незакрытых каталогах:

find /full_path -path '*/.*' -prune -o -type f -print | zip ~/file.zip -@
98
ответ дан 4 August 2018 в 18:54

Это также исключает скрытые файлы в незакрытых каталогах:

find /full_path -path '*/.*' -prune -o -type f -print | zip ~/file.zip -@
98
ответ дан 6 August 2018 в 03:16

Это также исключает скрытые файлы в незакрытых каталогах:

find /full_path -path '*/.*' -prune -o -type f -print | zip ~/file.zip -@
98
ответ дан 7 August 2018 в 20:57

Прежде всего, если вы не установили zip, установите его в первую очередь следующим образом:

sudo apt-get install zip

Затем для простого создания zip-файла:

zip -r compressed_filename.zip foldername

Если вы хотите исключить скрытые файлы:

find /folder_path -path '*/.*' -prune -o -type f -print | zip ~/compressed_filename.zip -@
57
ответ дан 25 May 2018 в 19:07
  • 1
    Благодарим вас за помощь, чтобы помочь пользователю Ubuntu. Имейте в виду, что повторное утверждение принятого ответа в новом ответе просто добавляет к беспорядку и имеет высокую вероятность быть помеченным для удаления. – hmayag 11 August 2015 в 10:04

Добавьте " к .* (в противном случае ваша оболочка расширяет .* до точечных файлов в текущем каталоге), а также исключает скрытые файлы в подкаталогах:

zip -r zipfile.zip . -x ".*" -x "*/.*"

приведет к тому, что файлы, начинающиеся с ., не будут добавлены в ваш zip-файл.

rinzwind@discworld:~/tmp$ ls -la
drwxr-xr-x  2 rinzwind rinzwind 4096 2011-08-28 00:15 tmp
drwxr-xr-x  2 rinzwind rinzwind 4096 2011-08-28 00:15 .tmp
rinzwind@discworld:~/tmp$ zip -r zipfile.zip . -x .*
adding: .tmp/ (stored 0%)
adding: tmp/ (stored 0%)
rinzwind@discworld:~/tmp$ zip -r zipfile.zip . -x ".*" -x "*/.*"
updating: tmp/ (stored 0%)
52
ответ дан 25 May 2018 в 19:07
  • 1
    Я не думаю, что ваше последнее утверждение верно. .* будет расширяться оболочкой. – hammar 28 August 2011 в 03:11
  • 2
    Я думаю, что это, вероятно, будет правильным, но я удалил его (не уверен в этом) :) – Rinzwind 28 August 2011 в 03:22
  • 3
    это не сработало. Добавлены .svn-каталоги – Martin Thoma 28 August 2011 в 14:13
  • 4
    @moose Шаблон exclude соответствует полному пути, а не только базовому имени файла, поэтому вам нужно исключить */.*, а также .* (*/ соответствует любой непустой последовательности каталогов). – Gilles 8 May 2014 в 22:21
  • 5
    Это бежит, ничего не меняя! Лучший ответ. – Whitecat 7 October 2017 в 07:12

Включает все "." каталоги, подкаталоги и "." файлы или каталоги в каталогах ... По сути, первый ответ, но включает верхний уровень "." файлы.

find /full_path -path '*.*/.*' -prune -o -type f -print | zip ~/file.zip -@
8
ответ дан 25 May 2018 в 19:07

Пример для исключения всех папок, начинающихся с. :

tar cvpzf folder.tgz folder/ --exclude '.*'

Лучше сжать, но медленнее:

tar cvpjf folder.tar.bz2 folder/ --exclude '.*'
7
ответ дан 25 May 2018 в 19:07

Правильный метод:

zip -r zipfile.zip directory -x directory/.*
5
ответ дан 25 May 2018 в 19:07
  • 1
    @downvoter: Что случилось, похоже, это работает для меня. – jobin 8 May 2014 в 21:55
  • 2
    Такая же проблема, как с оригинальным ответом Rinzwind (теперь исправлено): вы не исключаете подкаталоги. И как заметил Ринзвинд, вам нужно процитировать подстановочные знаки, иначе оболочка расширит их. – Gilles 8 May 2014 в 22:25

В то время как zipping dirs исключает некоторое расширение файла:

$ cd /path/to/dir
$ zip -r dir.zip . -x "*.log" -x "*.cache"
4
ответ дан 25 May 2018 в 19:07

Без скрытых папок и файлов в каталоге:

zip -r zipfile.zip directory/*

каталог: |── .git │   ├── src │   └── Work.file ├── .test │   └── .file └── test.file

$ zip -r zipfile.zip directory/*
adding: directory/src/ (stored 0%)
adding: directory/src/Work.file (stored 0%)
adding: directory/test.file (stored 0%)
2
ответ дан 25 May 2018 в 19:07

Пример для исключения всех папок, начинающихся с. :

tar cvpzf folder.tgz folder/ --exclude '.*'

Лучше сжать, но медленнее:

tar cvpjf folder.tar.bz2 folder/ --exclude '.*'
8
ответ дан 25 July 2018 в 21:24

Включает все "." каталоги, подкаталоги и "." файлы или каталоги в каталогах ... По сути, первый ответ, но включает верхний уровень "." файлы.

find /full_path -path '*.*/.*' -prune -o -type f -print | zip ~/file.zip -@
8
ответ дан 25 July 2018 в 21:24

Добавьте " к .* (в противном случае ваша оболочка расширяет .* до точечных файлов в текущем каталоге), а также исключает скрытые файлы в подкаталогах:

zip -r zipfile.zip . -x ".*" -x "*/.*"

приведет к тому, что файлы, начинающиеся с ., не будут добавлены в ваш zip-файл.

rinzwind@discworld:~/tmp$ ls -la drwxr-xr-x 2 rinzwind rinzwind 4096 2011-08-28 00:15 tmp drwxr-xr-x 2 rinzwind rinzwind 4096 2011-08-28 00:15 .tmp rinzwind@discworld:~/tmp$ zip -r zipfile.zip . -x .* adding: .tmp/ (stored 0%) adding: tmp/ (stored 0%) rinzwind@discworld:~/tmp$ zip -r zipfile.zip . -x ".*" -x "*/.*" updating: tmp/ (stored 0%)
52
ответ дан 25 July 2018 в 21:24
  • 1
    Я не думаю, что ваше последнее утверждение верно. .* будет расширяться оболочкой. – hammar 28 August 2011 в 03:11
  • 2
    Я думаю, что это, вероятно, будет правильным, но я удалил его (не уверен в этом) :) – Rinzwind 28 August 2011 в 03:22
  • 3
    это не сработало. Добавлены .svn-каталоги – Martin Thoma 28 August 2011 в 14:13
  • 4
    @moose Шаблон exclude соответствует полному пути, а не только базовому имени файла, поэтому вам нужно исключить */.*, а также .* (*/ соответствует любой непустой последовательности каталогов). – Gilles 8 May 2014 в 22:21
  • 5
    Это бежит, ничего не меняя! Лучший ответ. – Whitecat 7 October 2017 в 07:12

Правильный метод:

zip -r zipfile.zip directory -x directory/.*
5
ответ дан 25 July 2018 в 21:24
  • 1
    @downvoter: Что случилось, похоже, это работает для меня. – jobin 8 May 2014 в 21:55
  • 2
    Такая же проблема, как с оригинальным ответом Rinzwind (теперь исправлено): вы не исключаете подкаталоги. И как заметил Ринзвинд, вам нужно процитировать подстановочные знаки, иначе оболочка расширит их. – Gilles 8 May 2014 в 22:25

В то время как zipping dirs исключает некоторое расширение файла:

$ cd /path/to/dir $ zip -r dir.zip . -x "*.log" -x "*.cache"
4
ответ дан 25 July 2018 в 21:24

Прежде всего, если вы не установили zip, установите его в первую очередь следующим образом:

sudo apt-get install zip

Затем для простого создания zip-файла:

zip -r compressed_filename.zip foldername

Если вы хотите исключить скрытые файлы:

find /folder_path -path '*/.*' -prune -o -type f -print | zip ~/compressed_filename.zip -@
65
ответ дан 25 July 2018 в 21:24
  • 1
    Благодарим вас за помощь, чтобы помочь пользователю Ubuntu. Имейте в виду, что повторное утверждение принятого ответа в новом ответе просто добавляет к беспорядку и имеет высокую вероятность быть помеченным для удаления. – hmayag 11 August 2015 в 10:04

Без скрытых папок и файлов в каталоге:

zip -r zipfile.zip directory/*

каталог: |── .git │   ├── src │   └── Work.file ├── .test │   └── .file └── test.file

$ zip -r zipfile.zip directory/* adding: directory/src/ (stored 0%) adding: directory/src/Work.file (stored 0%) adding: directory/test.file (stored 0%)
3
ответ дан 25 July 2018 в 21:24

Пример для исключения всех папок, начинающихся с. :

tar cvpzf folder.tgz folder/ --exclude '.*'

Лучше сжать, но медленнее:

tar cvpjf folder.tar.bz2 folder/ --exclude '.*'
8
ответ дан 31 July 2018 в 11:28

Включает все "." каталоги, подкаталоги и "." файлы или каталоги в каталогах ... По сути, первый ответ, но включает верхний уровень "." файлы.

find /full_path -path '*.*/.*' -prune -o -type f -print | zip ~/file.zip -@
8
ответ дан 31 July 2018 в 11:28

Добавьте " к .* (в противном случае ваша оболочка расширяет .* до точечных файлов в текущем каталоге), а также исключает скрытые файлы в подкаталогах:

zip -r zipfile.zip . -x ".*" -x "*/.*"

приведет к тому, что файлы, начинающиеся с ., не будут добавлены в ваш zip-файл.

rinzwind@discworld:~/tmp$ ls -la drwxr-xr-x 2 rinzwind rinzwind 4096 2011-08-28 00:15 tmp drwxr-xr-x 2 rinzwind rinzwind 4096 2011-08-28 00:15 .tmp rinzwind@discworld:~/tmp$ zip -r zipfile.zip . -x .* adding: .tmp/ (stored 0%) adding: tmp/ (stored 0%) rinzwind@discworld:~/tmp$ zip -r zipfile.zip . -x ".*" -x "*/.*" updating: tmp/ (stored 0%)
52
ответ дан 31 July 2018 в 11:28
  • 1
    Я не думаю, что ваше последнее утверждение верно. .* будет расширяться оболочкой. – hammar 28 August 2011 в 03:11
  • 2
    Я думаю, что это, вероятно, будет правильным, но я удалил его (не уверен в этом) :) – Rinzwind 28 August 2011 в 03:22
  • 3
    это не сработало. Добавлены .svn-каталоги – Martin Thoma 28 August 2011 в 14:13
  • 4
    @moose Шаблон exclude соответствует полному пути, а не только базовому имени файла, поэтому вам нужно исключить */.*, а также .* (*/ соответствует любой непустой последовательности каталогов). – Gilles 8 May 2014 в 22:21
  • 5
    Это бежит, ничего не меняя! Лучший ответ. – Whitecat 7 October 2017 в 07:12

Правильный метод:

zip -r zipfile.zip directory -x directory/.*
5
ответ дан 31 July 2018 в 11:28
  • 1
    @downvoter: Что случилось, похоже, это работает для меня. – jobin 8 May 2014 в 21:55
  • 2
    Такая же проблема, как с оригинальным ответом Rinzwind (теперь исправлено): вы не исключаете подкаталоги. И как заметил Ринзвинд, вам нужно процитировать подстановочные знаки, иначе оболочка расширит их. – Gilles 8 May 2014 в 22:25

В то время как zipping dirs исключает некоторое расширение файла:

$ cd /path/to/dir $ zip -r dir.zip . -x "*.log" -x "*.cache"
4
ответ дан 31 July 2018 в 11:28

Прежде всего, если вы не установили zip, установите его в первую очередь следующим образом:

sudo apt-get install zip

Затем для простого создания zip-файла:

zip -r compressed_filename.zip foldername

Если вы хотите исключить скрытые файлы:

find /folder_path -path '*/.*' -prune -o -type f -print | zip ~/compressed_filename.zip -@
65
ответ дан 31 July 2018 в 11:28
  • 1
    Благодарим вас за помощь, чтобы помочь пользователю Ubuntu. Имейте в виду, что повторное утверждение принятого ответа в новом ответе просто добавляет к беспорядку и имеет высокую вероятность быть помеченным для удаления. – hmayag 11 August 2015 в 10:04

Без скрытых папок и файлов в каталоге:

zip -r zipfile.zip directory/*

каталог: |── .git │   ├── src │   └── Work.file ├── .test │   └── .file └── test.file

$ zip -r zipfile.zip directory/* adding: directory/src/ (stored 0%) adding: directory/src/Work.file (stored 0%) adding: directory/test.file (stored 0%)
3
ответ дан 31 July 2018 в 11:28

Пример для исключения всех папок, начинающихся с. :

tar cvpzf folder.tgz folder/ --exclude '.*'

Лучше сжать, но медленнее:

tar cvpjf folder.tar.bz2 folder/ --exclude '.*'
8
ответ дан 2 August 2018 в 03:03

Включает все "." каталоги, подкаталоги и "." файлы или каталоги в каталогах ... По сути, первый ответ, но включает верхний уровень "." файлы.

find /full_path -path '*.*/.*' -prune -o -type f -print | zip ~/file.zip -@
8
ответ дан 2 August 2018 в 03:03

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

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