#!/bin/bash
folderToBeUpdated="$HOME/folderToInsertIconsRecursively"
iconsFolder="$HOME/.icons"
file="$(mktemp)"
# Generate a recursive list of all folders and files inside the folder $folderToBeUpdated
ls -R "$folderToBeUpdated" | awk '
/:$/&&f{s=$0;f=0}
/:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
NF&&f{ print s"/"$0 }' > $file
# Start inserting icons dynamically on files and folders
while IFS='' read -r line || [[ -n "$line" ]]; do
folderName="$(basename "${line}")"
pathName="$(dirname "${line}")"
if [ -f "$iconsFolder"/"$folderName".png ]
then
gvfs-set-attribute -t string "$pathName/$folderName" metadata::custom-icon "file://$iconsFolder/$folderName.png"
fi
done < $file
我最终创建了一个脚本来解决我的问题。这不完全是一个备份解决方案,但它对我有用。
这个脚本的想法是我们需要给它两个文件夹的路径:
iconsFolder
)folderToBeUpdated
)该脚本将检查图标和具有相同名称的文件夹,然后它将在特定文件夹上插入图标,以防万一,例如,里面的文件夹
folderToBeUpdated
被调用,而我的里面example
有一个图标,所以图标将作为folder的图标(如果名称不同,脚本将不会执行任何操作)。example.png
iconsFolder
example.png
example
PS:运行脚本后必须按下
F5
才能看到图标。这只是一个功能脚本,但事实证明它很有用,因为我可以轻松地将我的图标复制到不同的计算机上。无论如何,如果有人知道以更方便的方式备份图标的方法,请随时撰写新答案或在评论中提供建议。