Как сохранить значки и эмблемы при копировании файлов
Когда я копирую файл через Nautilus, его эмблема или значок сохраняются, но если я делаю это с cp
или же rsync
через CLI это не так. Почему и как это исправить?
Под сохранением я подразумеваю, что значки, которые я изменил вручную, остаются такими же при копировании через Nautilus, и в противном случае при копировании через CLI в противном случае сбрасываются на значки по умолчанию.
3 ответа
Я написал небольшой скрипт на Perl, который решает эту проблему, metasave. Он сохраняет метаданные nautilus в форме сценария оболочки, который необходимо запустить в целевой системе.
Если вы хотите скопировать файлы в командной строке и сохранить их метаданные, вам необходимо использовать gvfs-copy
Гномовская замена cp
,
ПОЧЕМУ: эмблемы не являются частью самого файла, они хранятся где-то внутри Gnome - когда вы копируете файлы с помощью Nautilus, он может обновлять метаданные в Gnome, потому что Nautilus является приложением Gnome и знает о наличии меток и эмблемы.
cp
, rsync
и другие команды не-Gnome, с другой стороны, ничего не знают о ярлыках и эмблемах и не могут ничего сделать для их сохранения.
КАК ИСПРАВИТЬ: Не может быть хорошего способа исправить это для каждой утилиты командной строки, которая копирует файлы. Для некоторых выбранных команд, таких как cp
Вы можете посмотреть на написание некоторых оболочек, которые устанавливают эмблемы целевых файлов в соответствии с эмблемами исходных файлов. Этот пост может дать вам несколько советов о том, как установить эмблемы из командной строки
Попробуйте использовать rsync с флагом архива:
rsync -av <source> <dest>
Возможно, что nautilus сохраняет права доступа, такие как исполняемый файл и rsync & cp, если не указано иное.