Запретить обновление «измененного времени» при копировании файлов в установленную папку Samba

Я не хочу, чтобы атрибут «последний измененный» был изменен на текущую дату при копировании файлов в установленную папку Samba. Как я могу это сделать?

Это происходит с (K) Ubuntu 12.04 и Ubuntu 15.10. Его можно воспроизвести с помощью графических интерфейсов (проверенных с помощью nautilus 3.4.2 и дельфина 2.0) и использования cp -p в терминале.

Папка Samba была смонтирована в локальной файловой системе либо с помощью:

  • sudo mount -t smbfs //mynas/folder /mnt/nas/ -o user=username

или

  • sudo mount -t cifs //mynas/folder /home/mnt/nas/ -o user=username .

Заметки:

  • При подключении к той же папке Samba (с помощью nautilus или дельфина), используя URL-адрес, например smb://username@mynas/folder/ , я могу скопировать файлы в него без замены «измененного времени» на текущее время!
  • Но установка папки Samba более удобна, также не все инструменты поддерживают протокол smb. Вот почему использование URI smb:// не является обходным путем для меня.

Команда cp -P не относится к вашим потребностям. Вы используете прописную букву -P которая используется, чтобы никогда не следовать символическим ссылкам.

Для сохранения временных меток вы хотите использовать строчные буквы: cp -p

Как описано в разделе комментариев вопроса, с помощью правильного gid и uid решена проблема:

 sudo mount -t cifs //mynas/folder /home/mnt/nas/ -o user=username -o gid=1000,uid=1000 

Существует несколько других утилит, которые можно использовать для копирования файлов без изменения их временных меток. rsync (особенно, используя флаг -t) и cpio (с использованием флага -m), оба могут использоваться в этом случае. Просмотрите страницы руководства для каждого, чтобы узнать, какие другие варианты могут быть полезны.