폴더 A, B, C ….. Z에 사진이있는 경우 각 폴더의 첫 번째 사진을 폴더 아이콘으로 자동 설정하려면 어떻게합니까? 스크립트 나 다른 방법이 있습니까?
답변
1. 폴더 아이콘을 처음 찾은 이미지로 자동 변경
아래의 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>
그게 다야!
2. 고급
… 노틸러스에서 마우스 오른쪽 버튼 클릭 옵션으로 만들어야합니다.
스크립트는 약간 다릅니다.
#!/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"
])