แอปพลิเคชันใดที่ฉันควรตำหนิสำหรับการสร้างไดเรกทอรีอีกครั้งและอีกครั้ง?


21

มีแอปพลิเคชั่นในระบบของฉันซึ่งสร้าง~/Desktopไดเรกทอรีว่างซ้ำแล้วซ้ำอีก ฉันไม่สามารถยืนตัวอักษรพิมพ์ใหญ่ในบ้านของฉันไม่ได้ ดังนั้นอย่างจู้จี้จุกจิกกับฉันฉันจะลบไดเรกทอรีทุกครั้งที่ฉันเห็นมัน ฉันอยากรู้ว่าแอปพลิเคชั่นตัวไหนรับผิดชอบ (อาจเป็นแอปพลิเคชั่นบางตัวที่ฉันไม่ได้ใช้บ่อย)

มีความคิดที่ดีที่จะติดตามผู้กระทำผิดหรือไม่

-
1. เห็นได้ชัดว่าฉันต้องการที่จะกำจัดมันหรืออาจจะแก้ไขถ้าฉันไม่สามารถอยู่ได้โดยปราศจากมัน

คำตอบ:


11

ไดเรกทอรีนี้อาจจะมีการสร้างขึ้นโดยแอพลิเคชันที่เป็นไปตามมาตรฐานของ Freedesktop ทำให้ userdirs ใด ๆ ซึ่งอาจรวมถึงแอปพลิเคชัน Gnome หรือ KDE ทั้งหมด

หากคุณต้องการทราบว่าโปรแกรมสร้างไฟล์คุณสามารถใช้LoggedFSระบบแฟ้มหรือลินุกซ์ระบบย่อยการตรวจสอบ ดูเป็นไปได้ไหมที่จะทราบว่าโปรแกรมหรือสคริปต์ใดที่สร้างไฟล์ที่กำหนด สำหรับข้อมูลเพิ่มเติม.


ดังนั้นคำถามของฉันซ้ำกันแน่นอน…ขอบคุณ!
Stéphane Gimenez

และคำตอบของคุณดูเหมือนจะเป็นคนเดียวที่ตอบคำถามได้จริง
Stéphane Gimenez

@ StéphaneGimenezในทางเทคนิคแล้วคำถามนั้นซ้ำกัน แต่สำหรับกรณีนั้นคำตอบที่ถูกต้องสำหรับคนส่วนใหญ่ก็คือมันถูกสร้างขึ้นโดยแอปพลิเคชันที่สอดคล้องกับ Freedesktop และมันไร้ประโยชน์ที่จะต่อสู้ (ฉันลองแล้วฉันก็สร้างก~/.config/user-dirs.dirs) เช่นความคิดเห็นในuser-dirs.dirsเตือนฉันว่าบน Ubuntu ฉันพบว่าไดเรกทอรีถูกสร้างขึ้นโดยxdg-user-dirs-updateเรียกจาก/etc/Xsession.d/*เวลาเข้าสู่ระบบ
Gilles 'หยุดความชั่วร้าย'

8

ลักษณะเช่นนี้ไดเรกทอรีจากหนึ่งเป็นมาตรฐานเดสก์ทอปฟรี แอปพลิเคชันใด ๆ ที่สอดคล้องกับมันสามารถสร้างได้

สามารถระบุไดเรกทอรี "มาตรฐาน" เหล่านั้น$HOME/.config/user-dirs.dirsได้ คุณสามารถเปลี่ยนชื่อที่นั่นไม่ได้ขึ้นต้นด้วยตัวพิมพ์ใหญ่และซ่อนอยู่ที่ไหนสักแห่ง แต่การกำจัดโดยสิ้นเชิงจะเป็นเรื่องยาก

มีโปรแกรมหนึ่ง (คือxdg-user-dirs-update) ที่มีจุดมุ่งหมายคือการสร้างไดเรกทอรีเหล่านั้นดูXDG ผู้ใช้-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

ขอบคุณตกลงโปรแกรมที่อ่านแฟ้ม conf xdg-users-dirs-updateคือ
Stéphane Gimenez

0

หากคุณเป็นสภาพแวดล้อมแบบกราฟิกที่สมบูรณ์ในกล่องของคุณ (X และสภาพแวดล้อมเดสก์ทอปบางอย่างเช่น Gnome หรือ KDE) ก็จะเป็นกระบวนการของสภาพแวดล้อมเดสก์ทอปของคุณอย่างไม่ต้องสงสัย มันอาจจะสร้างไดเรกทอรี Desktop ทุกครั้งที่คุณลงชื่อเข้าใช้กระบวนการที่รับผิดชอบในการสร้างไดเรกทอรีนั้นขึ้นอยู่กับสภาพแวดล้อมเดสก์ทอปที่คุณใช้งานอยู่


คำถามทั่วไปเพราะเป็นกระบวนการที่แยกได้ ฉันไม่ได้ใช้ "สภาพแวดล้อมแบบกราฟิก" เพียงแค่เซิร์ฟเวอร์ X11 ที่มีตัวจัดการหน้าต่างเพียงเล็กน้อยเท่านั้น
Stéphane Gimenez

0

ใน Debian และ Ubuntu คุณจะได้เห็นว่ามีรายการในuser-dirs-update-gtk.desktop/etc/xdg/autostart/

การลบรายการนั้นป้องกันไม่ให้สร้างไดเรกทอรีผู้ใช้อีกครั้ง

รับสิ่งที่มาจากมาตรฐาน freedesktop มันเป็นไปได้ที่จะทำงานใน distros อื่น ๆ ด้วย


ไม่มีสิ่งใด (แต่มีไดเรกทอรีอยู่) ฉันกำลังมองหาวิธีทั่วไปเพื่อค้นหากระบวนการที่พยายามสร้างไดเรกทอรีเฉพาะ
Stéphane Gimenez

@ StéphaneGimenez: ยังไม่ชัดเจนสำหรับฉันตั้งแต่เริ่มต้นว่าวิธีการติดตามปัญหามีความสำคัญสำหรับคุณมากกว่าปัญหา
enzotib

0

หากแอปพลิเคชันยังคงทำงานอยู่คุณอาจพบไฟล์ที่เปิดอยู่ในไดเรกทอรีนั้นโดยใช้ lsof เนื่องจากไดเรกทอรีเป็นเพียงส่วนหนึ่งของชื่อไฟล์ฉันไม่คิดว่าคุณจะสามารถใช้มันเป็นพารามิเตอร์ของ lsof ได้ดังนั้นคุณต้อง grep เพื่อเป็นส่วนหนึ่งของมัน

lsof | grep $HOME/Desktop

สิ่งนี้ไม่สามารถใช้งานได้เนื่องจากแอปพลิเคชันไม่น่าจะมีไฟล์เปิดอยู่~/Desktopในขณะที่คุณเรียกใช้lsofและมันอาจสร้างไดเรกทอรีและไม่ได้ทำสิ่งใดข้างในเลย
Gilles 'หยุดชั่วร้าย'

ดังนั้น "คุณอาจจะ" คำตอบอื่น ๆ เกี่ยวกับการป้องกันสิ่งนี้และมันก็เป็นห้องสมุดเดสก์ท็อปที่อาจมีเหตุผลที่เหมาะสม อย่างไรก็ตามหากเป็นไฟล์ที่ถูกสร้างขึ้นเช่นนี้ในอุปกรณ์ฉันจะเริ่มต้นด้วยวิธีนี้และล้มเหลวเริ่มต้นด้วย ld preload และยืนยันเมื่อพวกเขาพยายามสร้าง dir นั้น - เห็นได้ชัดเกินไปสำหรับคำถามนี้ แต่สนุก
Danny Staple
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.