태그 보관물: command-line

command-line

모든 폴더의 첫 번째 그림을 폴더 아이콘으로 설정하는 방법은 무엇입니까? ….. Z에 사진이있는 경우 각 폴더의

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

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

답변