답변:
아래의 python 스크립트는 디렉토리 내 모든 폴더의 아이콘을 (재귀 적으로) 폴더 내에서 처음 발견 된 유효한 이미지 파일로 변경합니다.
#!/usr/bin/env python3
import subprocess
import os
import sys
# --- set the list of valid extensions below (lowercase)
# --- use quotes, *don't* include the dot!
ext = ["jpg", "jpeg", "png", "gif","icns", "ico"]
# ---
dr = sys.argv[1]
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))
])
change_icon.py
대상 디렉토리를 인수로 사용하여 실행하십시오.
python3 /path/to/change_icon.py <targeted_directory>
그게 다야!
... 노틸러스에서 마우스 오른쪽 버튼 클릭 옵션으로 만들어야합니다.
스크립트는 약간 다릅니다.
#!/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
os.path.realpath()
가 사용 되므로 대상 폴더가 링크 인 경우에도 작동합니다.어떤 이유로 폴더 안의 아이콘을 기본 아이콘으로 재설정하려면 아래 스크립트를 사용하십시오. 간단히:
reset_icons.py
다음 명령으로 실행하십시오.
python3 /path/to/reset_icons.py <target_directory>
#!/usr/bin/env python3
import subprocess
import os
import sys
dr = sys.argv[1]
for root, dirs, files in os.walk(dr):
for directory in dirs:
folder = os.path.join(root, directory)
subprocess.Popen([
"gvfs-set-attribute", os.path.abspath(folder),
"-t", "unset", "metadata::custom-icon"
])
.folder.png
모든 폴더에서 고유 한 파일을 선택할 수 있습니다 . 이것은 둘 이상의 이미지가있는 디렉토리에 실제로 도움이됩니다. 나는이 스크립트를 사용하고 있으며 그것은 내가 그것을보고 싶어 하나 개선 askubuntu.com/questions/900785/…