Thunar 및 Nautilus에서 이름에 점을 넣지 않고 디렉토리를 숨기는 방법은 무엇입니까?

Thunar 및 Nautilus에서 이름에 점을 넣지 않고 디렉토리를 숨기는 방법은 무엇입니까?

일반적으로 Linux 프로그램은 ~/.* 디렉터리에 사용자 설정을 저장합니다. 그러나 불행하게도 일부 개발자(필요한 일부 응용 프로그램)는 이 규칙을 따르지 않으며 저장 폴더 이름 설정을 점으로 시작하지 않습니다. 이로 인해 사용자가 사용하지 않는 폴더가 홈 디렉토리를 복잡하게 만듭니다(아마도 많지 않기 때문에 올바른 단어는 아니지만 어쨌든 귀찮습니다). 이 경우 응용 프로그램이 해당 항목을 찾지 못하고 다시 생성하므로 이름을 바꾸는 것은 옵션이 아닙니다.

이름으로 시작하는 점이 없는 폴더가 일반 파일 시스템 브라우저에 표시되지 않도록 숨길 수 있는 방법이 있습니까? (저는 실제로 Midnight Commander 및 Krusader와 함께 XFCE의 Thunar를 사용하지만 Nautilus에 대해서도 알고 싶습니다.)

답변1

노틸러스(업데이트: 이제 Thunar에서도 작동합니다).hidden동일한 디렉터리에 있는 파일에 나열된 모든 파일이나 폴더를 숨깁니다 .

노틸러스에서 폴더를 숨기는 방법에는 두 가지가 있습니다:

노틸러스 스크립트

  1. 홈 폴더의 새 파일에 다음 코드를 저장합니다. 이름을 붙이다 Hide.

    #!/usr/bin/env python
    
    import commands
    from os.path import join
    
    
    files = commands.getoutput("echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
    cwd = commands.getoutput("echo $NAUTILUS_SCRIPT_CURRENT_URI")
    cwd = cwd[7:]
    
    for f in files.split(" /"):
    
        f = f.split("/")[-1]
    
        commands.getoutput("echo "+f+" >> "+join(cwd, ".hidden"))
    
  2. 다음 명령을 실행하여 스크립트를 설치하십시오.

    cp Hide ~/.local/share/nautilus/scripts/ && chmod u+x ~/.local/share/nautilus/scripts/Hide
    
  3. 노틸러스에서 하나 이상의 파일/폴더를 선택하고 마우스 오른쪽 버튼을 클릭합니다. 선택하다숨다~로부터스크립트메뉴:

    여기에 이미지 설명을 입력하세요

    현재 위치( F5)를 다시 로드하면 선택한 파일/폴더가 숨겨집니다.

명령줄

"Rick Astley's Greatest Hits"라는 폴더를 숨기려면 다음 명령을 실행하세요.

echo "Rick Astley's Greatest Hits" >> .hidden

답변2

시냅틱을 열고 "nautilus-hide"를 검색하여 설치하세요. 로그아웃하고 로그인하세요. 이제 파일이나 폴더를 마우스 오른쪽 버튼으로 클릭하십시오. 이제 상황에 맞는 메뉴에 "숨기기" 옵션이 표시됩니다.

이름은 수정되지 않지만 폴더는 숨겨집니다.

답변3

수정했습니다Alvin의 좋은 대본(희망적으로) 더 파이썬적이 되도록(그리고 .hidden한 번만 열리므로 많은 파일을 추가하면 잠재적으로 더 빨라질 수 있습니다):

#!/usr/bin/env python

import os

files = os.environ["NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"].split()
# According to https://help.ubuntu.com/community/NautilusScriptsHowto
# the list is newline-delimited, which is split()'s default separator

# No need for NAUTILUS_SCRIPT_CURRENT_URI
cwd = os.path.dirname(files[0])
# Assuming all selected files are in the same path, I cannot imagine why not

# Instead of relying on "echo ... >> ..." use Python's IO:
with open(os.path.join(cwd, ".hidden"), "a") as hidden:
    hidden.write("\n".join(
        [os.path.basename(f) for f in files.split()]))

관련 정보