강제적으로 디렉토리를 반복해서 생성 한 것에 대해 어떤 응용 프로그램을 비난해야합니까?


21

시스템에 빈 ~/Desktop디렉토리 를 계속 반복해서 생성하는 응용 프로그램이 있습니다 . 나는 집에 대문자를 쓰거나이“데스크톱”을 견딜 수 없습니다. 따라서 내가 까다로워서 볼 때마다 디렉토리를 제거합니다. 어떤 응용 프로그램이 그 책임이 있는지 알고 싶습니다 (아마도 자주 사용하지 않는 일부 응용 프로그램 ¹).

범인을 추적 할 좋은 아이디어가 있습니까?


1. 분명히 그것을 없애고 싶거나 그것 없이는 살 수 없다면 패치하고 싶습니다.

답변:


11

이 디렉토리 는 Freedesktop userdirs 표준을 따르는 모든 응용 프로그램에서 만들 수 있습니다 . 잠재적으로 모든 Gnome 또는 KDE 응용 프로그램이 포함됩니다.

파일을 작성하는 응용 프로그램을 알고 싶은 경우 LoggedFS 파일 시스템 또는 Linux 감사 서브 시스템을 사용할 수 있습니다 . 주어진 파일을 생성 한 프로그램이나 스크립트를 찾을 수 있습니까?를 참조하십시오 . 자세한 내용은.


그래서 내 질문은 정확히 중복입니다 ... 감사합니다!
Stéphane Gimenez

그리고 당신의 대답은 실제로 그 질문에 대답하는 유일한 것 같습니다.
Stéphane Gimenez

@ StéphaneGimenez 기술적으로 문제는 중복이지만 특정 경우에 대부분의 사람들에게 올바른 대답은 Freedesktop 호환 응용 프로그램에 의해 생성되어 싸우는 데 쓸모가 없다는 것 ~/.config/user-dirs.dirs입니다. 예를 들어 내 의견은 user-dirs.dirs우분투에서 디렉토리가 로그인 할 때 xdg-user-dirs-update호출하여 생성되었음을 알립니다 /etc/Xsession.d/*.
Gilles 'SO- 악한 중지'

8

이것은 무료 데스크탑 표준 중 하나의 디렉토리처럼 보입니다 . 이를 준수하는 모든 응용 프로그램이 만들 수 있습니다.

이러한 "표준"디렉토리는에서 지정할 수 있습니다 $HOME/.config/user-dirs.dirs. 대문자로 시작하지 않고 어딘가에 숨겨 지도록 이름을 변경할 수 있지만 완전히 제거하기는 어렵습니다.

xdg-user-dirs-update이러한 디렉토리를 만드는 것을 목표로하는 하나의 프로그램 ( )이 있습니다 ( xdg-users-dirs 참조) . 다음을 $HOME/.config/user-dirs.conf포함 하여 비활성화 할 수 있어야합니다.

enabled=False

해결 방법은 환영하지만 어떤 응용 프로그램이이 디렉토리를 작성하고 있는지 알고 싶습니다 (디렉토리가 다시 작성되는 순간 포착하고 싶습니다).
Stéphane Gimenez

고마워, 내가해볼 게 그러나 응용 프로그램이 자체적으로 디렉토리를 생성하지 않기를 바랄 수 있습니다.
Stéphane Gimenez

enabled정보를 어디에서 찾았 습니까? 독서 xdg-users-dirs, 이것은 스크립트에 전혀 영향을 미치지 않는 것 같습니다.
Stéphane Gimenez

여기에서 읽은 다음/etc/xdg/user-dirs.conf
AProgrammer

감사합니다 xdg-users-dirs-update. conf 파일을 읽는 프로그램은 입니다.
Stéphane Gimenez

0

박스의 완벽한 그래픽 환경 (X 및 Gnome 또는 KDE와 같은 일부 데스크탑 환경)이라면 의심 할 여지없이 데스크탑 환경의 프로세스입니다. 로그인 할 때마다 데스크탑 디렉토리가 작성 될 수 있습니다. 디렉토리 작성을 담당하는 프로세스는 실행중인 데스크탑 환경에 따라 완전히 다릅니다.


문제는 격리 된 프로세스이기 때문에 일반적이었습니다. "그래픽 환경"을 사용하지 않고 창 관리자가 거의없는 X11 서버 만 사용합니다.
Stéphane Gimenez

0

데비안과 우분투에서 당신은 항목이 있음을 볼 수 있었다 user-dirs-update-gtk.desktop에서 /etc/xdg/autostart/.

해당 항목을 제거하면 사용자 디렉토리가 다시 작성되지 않습니다.

freedesktop 표준에서 나온 것이므로 다른 배포판에서도 작동합니다.


거기에 아무것도 없습니다 (그러나 디렉토리는 존재합니다). 특정 프로세스를 만드는 프로세스를 찾는 일반적인 방법을 찾고있었습니다.
스테판 기 메네즈

@ StéphaneGimenez : 문제를 추적하는 방법이 문제 자체보다 더 중요하다는 것이 처음부터 명확하지 않았습니다.
enzotib

0

응용 프로그램이 여전히 실행중인 경우 lsof를 사용하여 해당 디렉토리에서 열린 파일을 찾을 수 있습니다. 디렉토리는 파일 이름의 일부이므로 lsof의 매개 변수로 사용할 수 있다고 생각하지 않으므로 그 일부를 grep해야합니다.

lsof | grep $HOME/Desktop

응용 프로그램이 ~/Desktop실행할 때 파일을 열지 않을 가능성이 높기 때문에 lsof디렉토리가 만들어져 내부에서 다른 작업을 수행하지 않았기 때문에 작동하지 않을 수 있습니다 .
Gilles 'SO- 악마 그만'

따라서 "당신은 할 수 있습니다". 다른 하나는 이것을 막는 것에 대한 답변이며 아마도 책임이있는 데스크탑 라이브러리 일 것입니다. 그러나 파일이 장치에서 이와 같이 생성 되었습니까?이 방법으로 시작하고 실패했습니다 .ld preload로 물건을 시작하고 dir을 만들려고 할 때 주장합니다.이 질문에 대해서는 너무 극단적입니다. 그러나 재미있다.
Danny Staple
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.