Как копировать только файлы, которые перезаписывают другие в каталоге

У выпусков LTS есть две доступные серии ядер, версии GA и версии HWE:

GA (общая доступность) - это версия ядра, с которой релиз Ubuntu был первоначально выпущен, что было 4.4 для Ubuntu 16.04 , Метаданные, содержащие ядра GA, - linux-generic. HWE (Hardware Enablement) - это версия с открытым кодом ядра от последней версии Ubuntu, то есть от 17.10, которая является ядром 4.13. Он содержит поддержку новейшего оборудования (следовательно, имя) и других обновлений функций. Метапакет ядер HWE в 16.04 - linux-generic-hwe-16.04.

Если вы устанавливаете 16.04.0 или 16.04.1 (начальный выпуск или первый обновленный точечный выпуск 16.04), вы получаете по умолчанию строку ядра GA.

Если вы устанавливаете более позднюю версию (16.04.2 или более позднюю, выпущенную после следующей обычной версии Ubuntu), вы получаете ядра HWE по умолчанию.

Не знаете, почему именно apt dist-upgrade установит строку GA позже, но если вы уже загрузились из ядра HWE (4.13), следует удалить ее с помощью:

sudo apt remove linux-generic
sudo apt autoremove

Это должно удалить все пакеты, связанные с ядром 4.4, но по-прежнему проверяйте список пакетов, которые нужно удалить, для любых других вещей, от которых вы не захотите избавиться.

1
задан 2 May 2018 в 23:20

8 ответов

Вы можете достичь этого с помощью rsync, используя флаг --existing:

        --existing              skip creating new files on receiver

Пример. заданные

$ tree -a A/ B/
A/
├── bar
├── baz
├── foo
└── .hidden
B/
├── bam
├── baz
├── foo
└── .hidden

0 каталоги, 8 файлов

, где baz, foo и .hidden являются общими, но bar существует только на источнике и bam (примечание: я включил подробный флаг -v и -n «сухой ход» для иллюстрации):

$ rsync -avn --existing A/ B/
sending incremental file list
.hidden
baz
foo

sent 152 bytes  received 25 bytes  354.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

обновляет только baz, foo и .hidden. (Файлы, которые существуют только в месте назначения, по умолчанию игнорируются.)

Вы можете проверить, что без --existing, bar также будет скопирован:

[ f4]
1
ответ дан 22 May 2018 в 11:02
  • 1
    Просто чтобы убедиться, что эта копия скрытых файлов тоже? – Emergency Temporal Shift 3 May 2018 в 00:46
  • 2
    @EmergencyTemporalShift да, я верю, что это будет - см. Обновленный ответ – steeldriver 3 May 2018 в 01:17

Вы можете достичь этого с помощью rsync, используя флаг --existing:

--existing skip creating new files on receiver

Пример. заданные

$ tree -a A/ B/ A/ ├── bar ├── baz ├── foo └── .hidden B/ ├── bam ├── baz ├── foo └── .hidden

0 каталоги, 8 файлов

, где baz, foo и .hidden являются общими, но bar существует только на источнике и bam (примечание: я включил подробный флаг -v и -n «сухой ход» для иллюстрации):

$ rsync -avn --existing A/ B/ sending incremental file list .hidden baz foo sent 152 bytes received 25 bytes 354.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN)

обновляет только baz, foo и .hidden. (Файлы, которые существуют только в месте назначения, по умолчанию игнорируются.)

Вы можете проверить, что без --existing, bar также будет скопирован:

$ rsync -avn A/ B/ sending incremental file list .hidden bar baz foo sent 155 bytes received 28 bytes 366.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN)
1
ответ дан 17 July 2018 в 15:25

Вы можете достичь этого с помощью rsync, используя флаг --existing:

--existing skip creating new files on receiver

Пример. заданные

$ tree -a A/ B/ A/ ├── bar ├── baz ├── foo └── .hidden B/ ├── bam ├── baz ├── foo └── .hidden

0 каталоги, 8 файлов

, где baz, foo и .hidden являются общими, но bar существует только на источнике и bam (примечание: я включил подробный флаг -v и -n «сухой ход» для иллюстрации):

$ rsync -avn --existing A/ B/ sending incremental file list .hidden baz foo sent 152 bytes received 25 bytes 354.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN)

обновляет только baz, foo и .hidden. (Файлы, которые существуют только в месте назначения, по умолчанию игнорируются.)

Вы можете проверить, что без --existing, bar также будет скопирован:

$ rsync -avn A/ B/ sending incremental file list .hidden bar baz foo sent 155 bytes received 28 bytes 366.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN)
1
ответ дан 20 July 2018 в 15:50

Вы можете достичь этого с помощью rsync, используя флаг --existing:

--existing skip creating new files on receiver

Пример. заданные

$ tree -a A/ B/ A/ ├── bar ├── baz ├── foo └── .hidden B/ ├── bam ├── baz ├── foo └── .hidden

0 каталоги, 8 файлов

, где baz, foo и .hidden являются общими, но bar существует только на источнике и bam (примечание: я включил подробный флаг -v и -n «сухой ход» для иллюстрации):

$ rsync -avn --existing A/ B/ sending incremental file list .hidden baz foo sent 152 bytes received 25 bytes 354.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN)

обновляет только baz, foo и .hidden. (Файлы, которые существуют только в месте назначения, по умолчанию игнорируются.)

Вы можете проверить, что без --existing, bar также будет скопирован:

$ rsync -avn A/ B/ sending incremental file list .hidden bar baz foo sent 155 bytes received 28 bytes 366.00 bytes/sec total size is 0 speedup is 0.00 (DRY RUN)
1
ответ дан 23 July 2018 в 16:22

Проверьте это на stackoverflow. Существует несколько решений. Я не пробовал их, но я думаю, что они должны работать и решать вашу проблему:

https://stackoverflow.com/questions/47154327/move-or-copy-a-file-if-that-file- существует? utm_medium = organic & amp; utm_source = google_rich_qa & amp; utm_campaign = google_rich_qa

Надеюсь, это вам поможет.

)
0
ответ дан 22 May 2018 в 11:02

Проверьте это на stackoverflow. Существует несколько решений. Я не пробовал их, но я думаю, что они должны работать и решать вашу проблему:

https://stackoverflow.com/questions/47154327/move-or-copy-a-file-if-that-file- существует? utm_medium = organic & amp; utm_source = google_rich_qa & amp; utm_campaign = google_rich_qa

Надеюсь, это вам поможет.

)
0
ответ дан 17 July 2018 в 15:25

Проверьте это на stackoverflow. Существует несколько решений. Я не пробовал их, но я думаю, что они должны работать и решать вашу проблему:

https://stackoverflow.com/questions/47154327/move-or-copy-a-file-if-that-file- существует? utm_medium = organic & amp; utm_source = google_rich_qa & amp; utm_campaign = google_rich_qa

Надеюсь, это вам поможет.

)
0
ответ дан 20 July 2018 в 15:50

Проверьте это на stackoverflow. Существует несколько решений. Я не пробовал их, но я думаю, что они должны работать и решать вашу проблему:

https://stackoverflow.com/questions/47154327/move-or-copy-a-file-if-that-file- существует? utm_medium = organic & amp; utm_source = google_rich_qa & amp; utm_campaign = google_rich_qa

Надеюсь, это вам поможет.

)
0
ответ дан 23 July 2018 в 16:22

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

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