Как сохранить время модификации файла при копировании на NAS?

Вы можете сделать это, расширив эти правила в соответствии с вашими потребностями -

# Start at sdb to avoid system harddrive. 
KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"

# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"

# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# Global mount options
ACTION=="add", ENV{mount_options}="defaults,relatime"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs",                ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"

# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o        $env{mount_options} /dev/%k /media/%E{dir_name}"

# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}",   RUN+="/bin/rmdir /media/%E{dir_name}"

# Exit
LABEL="media_by_label_auto_mount_end"

. Познакомьтесь с правилами. Он не работает для жестких дисков. KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end" говорит, что если имя устройства sda * (если не sdb * или sdc *), перейдите к метке media_by_label_auto_mount_end, т.е. до конца правил. Поэтому отредактируйте строку так, как вы хотите. Но не забывайте о системном драйвере. Добавьте исключение для него.

Если ваш системный диск - / dev / sda7, тогда первая пара строк должна быть

KERNEL=="sda7" GOTO="media_by_label_auto_mount_end" #sda7 is system drive, so go to end.
#KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"

Если вам нужно запустить дополнительные команды (-ы), конкатенате их с RUN.

Подробнее о правилах udev нажмите здесь

1
задан 9 December 2012 в 01:43

2 ответа

Стандартная команда cp имеет флаг --preserve, который сохранял определенные атрибуты (по умолчанию - режим, собственность, временные метки) при копировании.

Так что-то вроде этого:

cp -rp /source/photos/folder /destination/photos/folder

должен делать трюк в «нормальном» случае. Тем не менее, afp:// вещь в URL-адреса смущает меня - это протокол Apple Filing? В этом случае все ставки отключены.

Думаю, что я хотел бы добавить - полагаясь на даты изменения файлов для каталогизации ваших фотографий, очень хрупко. Это и есть метаданные изображения (EXIF и т. Д.). Или, по крайней мере, просто поместите их в директории в соответствии со своей датой съемки: фотографии / 2012/12/05 и т. Д.

2
ответ дан 25 May 2018 в 03:38
  • 1
    Спасибо за подсказку, Сергей. Если мне придется использовать командную строку, я буду, но я надеялся, что Ubuntu сможет сделать правильную работу через графический интерфейс. Это было в прошлом (до 12.04). И да, я собирался переместить фотографии в папки, организованные месяцем, когда я заметил проблему времени изменения. – Randall Cook 6 December 2012 в 13:48
  • 2
    Я попробовал cp -p с терминала, и я получил эту ошибку: " cp: сохранение времени для '.gvfs / AFP тома для randall на DiskStation / target_dir / image.JPG': операция не поддерживается & quot ;. Поэтому я думаю, cp -p не сработает. Я попробую предложение Дэвида6. – Randall Cook 8 December 2012 в 12:35
  • 3
    При использовании Mac OS для доступа к NAS Synology через терминал, cp -p не сохраняет отметки времени. Я установил NAS через smb. Я попросил поддержку Synology, и, по-видимому, отсутствие сохранения - это поведение по умолчанию. С другой стороны, rsync сохраняет метки времени. – andrewj 19 June 2013 в 00:53
  • 4
    Только относительно изображений, и если принятое вами EXIF-изображение беспокоит вас (и действительно хрупкое). Если кто-то хочет восстановить последние измененные даты из Exif Information, смотрите здесь: → photo.stackexchange.com/a/69193/48640 – Frank Nocke 5 November 2016 в 10:20
  • 5

Это классическая проблема push / pull для удаленной копии.

Хост-получатель не выполняет отметку даты полученных файлов. Nautilus имеет такую ​​же ошибку: от 10.04 LTS до 12.10 ..

Это решение (для Nautilus) при копировании между двумя хостами Ubuntu, всегда копируя получателя удаленный хост (источник) локальному хосту (получателю). ') ')

Ваша проблема связана с полем NAS, а не с Ubuntu.

Вам это нужно (по умолчанию).

Это классическая проблема push / pull для удаленной копии.

2
ответ дан 25 May 2018 в 03:38
  • 1
    Спасибо, david6. Я определенно не использую NFS, так как он отключен на DiskStation, но доступ к файлам Windows и Mac включен. Когда я подключаюсь к DiskStation, Nautilus (я думаю) спрашивает только имя пользователя и пароль, а не протокол. Горе, которое я получаю, имеет " AFP " от его имени, поэтому я предполагаю, что он выбрал протокол файлов Apple. Я попытаюсь заставить монстр CIFS, посмотреть, работает ли это, а затем найти способ автоматически получить это. – Randall Cook 8 December 2012 в 12:50

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

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