![更改多个文件夹(电影)的文件夹图标](https://linux22.com/image/1146271/%E6%9B%B4%E6%94%B9%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%88%E7%94%B5%E5%BD%B1%EF%BC%89%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E5%9B%BE%E6%A0%87.png)
我来过这里,但它对我不起作用。因为我的电影不在主分区中,它们在不同的 ext4 分区中,当我尝试在该命令中输入该分区的位置时,它根本不起作用,因为它会自动输入/主页/sumeet在我输入的位置前面。
第二篇文章中的脚本不起作用!也许我做错了什么。
[编辑 2 详细信息]
{ while read -r d ; do [ -d "$d" ] && [ -e "$d/folder.png" ] || continue ; gvfs-set-attribute -t string "$d" metadata::custom-icon "file://$d/folder.png" ; done ; } < <(find ~/mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I -mindepth 1 -maxdepth 1 -type d)
我首先从第一篇文章中运行了这个命令,它给了我一个输出
find: ‘/home/sumeet/mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I’: No such file or directory
然后我将一些文件移动到主页/影片/电影按照原始帖子中的建议运行此命令
{ while read -r d ; do [ -d "$d" ] && [ -e "$d/folder.png" ] || continue ; gvfs-set-attribute -t string "$d" metadata::custom-icon "file://$d/folder.png" ; done ; } < <(find ~/Videos/Films -mindepth 1 -maxdepth 1 -type d)
一切运行正常,但我无法将我的整个电影收藏移动到主文件夹。
然后我尝试了第二篇提到的帖子中的解决方案并运行
python3 /home/sumeet/change_icon.py </mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I>
并得到这个输出
bash: syntax error near unexpected token `newline'
然后我意识到我做错了什么,于是尝试了这个
python3 /home/sumeet/change_icon.py /mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I
没有得到任何输出但它也不起作用。
然后我尝试了第二个脚本 3 或 4 次。出现了右键单击选项,但不起作用,我已经按照帖子要求做了所有事情。我注销,重新登录,尝试重新启动,-q nautilus
似乎不起作用。
答案1
该脚本由雅各布·弗莱姆最初发布于这里。
#!/usr/bin/env python3
import subprocess
import os
# --- set the list of valid extensions below (lowercase)
# --- use quotes, *don't* include the dot!
ext = ["jpg", "jpeg", "png", "gif", "icns", "ico"]
# ---
# retrieve the path of the targeted folder
current = os.getenv("NAUTILUS_SCRIPT_CURRENT_URI").replace("file://", "").replace("%20", " ")
dr = os.path.realpath(current)
for root, dirs, files in os.walk(dr):
for directory in dirs:
folder = os.path.join(root, directory)
try:
first = min(p for p in os.listdir(folder)
if p.split(".")[-1].lower() in ext)
except ValueError:
pass
else:
subprocess.Popen([
"gvfs-set-attribute", "-t", "string",
os.path.abspath(folder), "metadata::custom-icon",
"file://"+os.path.abspath(os.path.join(folder, first))
])
使用
如果目录尚不存在,则创建该目录
~/.local/share/nautilus/scripts
将脚本复制到一个空文件中,将其另存
~/.local/share/nautilus/scripts
为set_foldericons
(无扩展名!),右键单击并转到文件属性并使其可执行。- 注销并重新登录,就可以了。
如果你想隐藏所有文件夹图标(这样你就不会意外地认为它们是文件夹),可以在文件名开头添加一个,.
例如folder.png
.folder.png