모든 폴더의 첫 번째 그림을 폴더 아이콘으로 설정하는 방법은 무엇입니까?


19

폴더 A, B, C ..... Z에 사진이있는 경우 각 폴더의 첫 번째 사진을 폴더 아이콘으로 자동 설정하려면 어떻게합니까? 스크립트 나 다른 방법이 있습니까?

답변:


28

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))
                  ])

Pastebin에서 다운로드

사용하는 방법

  1. 스크립트를 빈 파일로 복사하여 다른 이름으로 저장하십시오. change_icon.py
  2. 스크립트 헤드에서 원하는 경우 유효한 아이콘 이미지로 사용할 확장명 목록을 편집하십시오.
  3. 대상 디렉토리를 인수로 사용하여 실행하십시오.

    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))
                  ])

Pastebin에서 다운로드

쓰다

  1. 존재하지 않는 경우 디렉토리를 만듭니다.

    ~/.local/share/nautilus/scripts
  2. 스크립트를 빈 파일로 복사하고 (확장자 없음!) ~/.local/share/nautilus/scripts으로 저장 한 다음 실행 가능하게 만드십시오 .set_foldericons

  3. 로그 아웃했다가 다시 로그인하면 작동합니다.

노트

  • 폴더 자체가 아니라 마우스 오른쪽 버튼으로 클릭 한 폴더 안에 있는 모든 폴더의 아이콘이 변경 됩니다.
  • 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"
            ])

"/ home / user / folderName"과 같은 전체 경로를 입력해야한다는 것을 알았습니다.
JulianLai

그들이이 기능을 노틸러스에 추가하면 더 나은 파일 관리자가 될 것입니다.
JulianLai


의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
terdon

폴더의 첫 번째 이미지 대신 @JacobVlijm을 사용하여 예를 들어 .folder.png모든 폴더에서 고유 한 파일을 선택할 수 있습니다 . 이것은 둘 이상의 이미지가있는 디렉토리에 실제로 도움이됩니다. 나는이 스크립트를 사용하고 있으며 그것은 내가 그것을보고 싶어 하나 개선 askubuntu.com/questions/900785/…
Sumeet Deshmukh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.