LINUX cp -r 带属性(特别是图标)

LINUX cp -r 带属性(特别是图标)

LINUX Mint 20.04 我需要这个脚本,该脚本已经在 UBUNTU 中运行,但在 Mint 中不再运行。

我的问题:我有一个目录,我只需在 nemo 中右键单击它 --> 属性 --> 单击图标 --> 选择一个新图标即可更改其图标。

如果我使用 nemo 将此目录复制到另一个地方,它会保留其外观。(图标)

但是当我用控制台复制这个目录时cp -r......它失去了它的外观。(看起来像一个普通目录)

我的问题:我需要添加什么参数,才能cp -r将属性复制到新目录,就像我使用 nemo 复制它一样?

我已经尝试过了:

cp -ra
cp -ra -attributes-only
cp -rp

但这些都没有起到作用。

答案1

要模仿 Nemo,您需要使用gio copy。不幸的是,它没有-r,所以您需要单独弄清楚。

Nautilus、Nemo 和 Thunar 将这些属性存储在单独的元数据数据库中,而不是直接作为文件本身的属性。您可以使用 来验证 xattrs 是否不存在getfattr -d ~/Foo,并且可以使用 查看 GNOME 应用程序可见的所有属性 - 包括 xattrs 以及 GVfs 存储的自定义元数据gio info ~/Foo

这意味着您必须使用利用 GLib/GVfs 函数的工具来复制文件;其他工具都不知道如何复制 GVfs 级别的元数据。(我认为 KDE 可能存在类似的问题;它确实存在kio cp。)

目前,由于该gio工具不支持递归复制,因此您需要在gio info旧文件夹中找到特定的元数据项,然后使用手动将其设置在新文件夹中gio set(以您喜欢的方式复制文件夹后)。

相关内容