Nautilus में किसी फ़ाइल को हटाने का प्रयास करते समय फ़ाइल को कचरा चेतावनी में स्थानांतरित नहीं किया जा सकता है


17

मैं Nautilus में फ़ाइलों को हटाने की कोशिश कर रहा हूं और हर बार जब मैं एक को हटाने की कोशिश करता हूं तो यह मुझे यह संदेश देता है:

फ़ाइल को ट्रैश में नहीं ले जाया जा सकता, क्या आप तुरंत हटाना चाहते हैं?

फिर यह मुझे कई सवाल देता है। मैं बस यही चाहता हूं कि जब मैं दबाऊंDelete कीबोर्ड में , तो यह अपने आप कूड़ेदान में भेज सकता है। हर बार मुझसे पूछने के लिए नहीं।

समस्या NTFS विभाजन, बाहरी ड्राइव से संबंधित है, लेकिन इसमें लिनक्स फाइल सिस्टम भी शामिल हैं।

क्या नॉटिलस मधुमक्खी के कारण कूड़ेदान में नहीं जा पा रहे हैं?

यहाँ छवि विवरण दर्ज करें


क्या आप फ़ाइल का पूर्ण (निरपेक्ष) पथ प्रदान कर सकते हैं
anshep

इस मामले में / var / www है। पहले से ही इसके मालिक हैं और अनुमतियां अच्छी हैं। लेकिन हार्ड ड्राइव और पेन ड्राइव जैसी बाहरी इकाइयाँ भी एक ही समस्या है।
लुइस अल्वारादो

जवाबों:


10

(हटाने योग्य मीडिया के बारे में, उपयोगकर्ता के मामले से नहीं क्योंकि यह एक बग था जिसे अपडेट के साथ हल किया गया था)

यह व्यवहार इसलिए होता है क्योंकि जब ड्राइव को माउंट किया जाता है तो आप मालिक नहीं माने जाते हैं इसलिए एक कचरा बिन नहीं बनाया जा सकता है। कोई यूआईडी या gid असाइन किया गया था और चूंकि ट्रैश बिन फ़ोल्डर को ड्राइव में नहीं बनाया जा सकता है इसलिए आपको केवल फ़ाइलों को स्वचालित रूप से हटाने के लिए विकल्प की पेशकश की जाती है।

उस स्थिति में आपके पास 2 विकल्प हैं: फ़ाइलों को अपने लिनक्स फ़ाइल सिस्टम में काटें और उन्हें वहां हटा दें (जो प्रेस डिलीट के उद्देश्य को हरा देता है और फाइलें हटा दी जाती हैं ) या सुनिश्चित करें कि ड्राइव को माउंट करते समय आपको सही अनुमति दी गई है।

इन पंक्तियों के साथ अपने ऑटो-माउंटेड ड्राइव के लिए एक नया नियम बनाएं, उसके लिए अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करें

gksudo gedit /etc/udev/rules.d/10-my-media-automount.rules

# vim:enc=utf-8:nu:ai:si:et:ts=4:sw=4:ft=udevrules:
#
# /etc/udev/rules.d/10-my-media-automount.rules

# start at sdb to ignore the system hard drive
KERNEL!="sd[b-z]*", GOTO="my_media_automount_end"
ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="my_media_automount_end"

# import some useful filesystem info as variables
IMPORT{program}="/sbin/blkid -o udev -p %N"

# get the label if present, otherwise assign one based on device/partition
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"

# create the dir in /media and symlink it to /mnt
ACTION=="add", RUN+="/bin/mkdir -p '/media/%E{dir_name}'"

# global mount options
ACTION=="add", ENV{mount_options}="relatime"
# filesystem-specific mount options (777/666 dir/file perms for ntfs/vfat) 
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},gid=46,dmask=000,fmask=111,utf8"

# automount ntfs filesystems using ntfs-3g driver
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", RUN+="/bin/mount -t ntfs-3g -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"
# automount all other filesystems
ACTION=="add", ENV{ID_FS_TYPE}!="ntfs", RUN+="/bin/mount -t auto -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"

# clean up after device removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}'"

# exit
LABEL="my_media_automount_end"

आपके कंप्यूटर को रिबूट करें और इस कस्टम नियम का उपयोग करके आपके ntfs ड्राइव को माउंट किया जाएगा, माउंटेड ड्राइव के लिए अनुमतियों को बदलने के लिए लाइन पर एक नज़र है $env{mount_options},gid=46,dmask=000,fmask=111,utf8", विकल्प gid=46को समूह विशेषाधिकारों के साथ ntfs ड्राइव को माउंट करना चाहिए ( 46(plugdev)वह समूह जो उपयोगकर्ता को माउंट करने की अनुमति देता है उबंटू में एक ड्राइव),fmask और dmaskड्राइव पर फ़ाइलों / फ़ोल्डरों को लिखने, बनाने, हटाने के लिए सेटिंग्स।

जरूरतों के अनुसार इसे बदलें। आपको प्रत्येक प्रकार के अनुसार अपने आप से अन्य फ़ाइल सिस्टम को सॉर्ट करने की आवश्यकता होगी लेकिन यह आपकी शुरुआत होनी चाहिए।

( नियम के लिए स्रोतudev )


क्या यह भी मेरे लिए काम करता है? मेरे पास थोड़ा अलग वातावरण है: केवल लिनक्स का उपयोग करना, और मेरे पास एनएफएस घुड़सवार घर है जहां हटाना काफी अच्छी तरह से काम कर रहा है और वहां एक कचरा भी मौजूद है, लेकिन मैंने reposस्थानीय फाइलसिस्टम /local/home/me/repos(इसके तेज) के लिए एक निर्देशिका को सहानुभूति दी है । केवल इस निर्देशिका और उपनिर्देशिका के अंदर हटाने से काम नहीं चलता है। निर्देशिकाएँ /local/home755 रूट के स्वामित्व में हैं, लेकिन मेरी निर्देशिका मेरे /local/home/me/reposपास मोडलिटी 700 के साथ है।
गणित

प्रश्न: क्या इस रेखा के मान: $env{mount_options},gid=46,dmask=000,fmask=111,utf8"के <options>कॉलम के अंदर भी लिखे जा सकते हैं fstab? क्या यह वही चीज है?
निहारो

8

उन मामलों के लिए जहां उपयोगकर्ता गैर-हटाने योग्य विभाजन में संग्रहीत फ़ाइल को नहीं हटा सकता (Ubuntu 14.04)

जैसा कि ब्रूनो परेरा ने कहा, यह व्यवहार इसलिए होता है क्योंकि उपयोगकर्ता के पास विभाजन के आरोह बिंदु (ओपी मामले, / संस्करण) में लिखने की अनुमति नहीं है, इसलिए कचरा बिन के लिए एक निर्देशिका नहीं बनाई जा सकती है।

इस स्थिति में, ओपी / var विभाजन में संग्रहीत कचरा फाइलों पर नहीं जा सकता है। इस मुद्दे को हल:

$ cd /var
$ sudo mkdir .Trash-1000
$ chown user:group .Trash-1000

आपको प्रतिस्थापित करना होगा:

  • 1000 आपके उपयोगकर्ता पहचानकर्ता द्वारा (फ़ाइल / लॉगिन / पासवार्ड पर अपने लॉगिन नाम के बाद की संख्या देखें)
  • user:group आपके लॉगिन नाम और समूह द्वारा, क्रमशः

4

16.04 को, मैं उसी समस्या में भाग गया। समाधान डिस्क खोल रहा था, NTFS विभाजन पर क्लिक करके -> नीचे छोटे गियर आइकन पर (अतिरिक्त विभाजन विकल्प) -> "माउंट विकल्प संपादित करें" और लाइन में "uid = 1000" (कोई उद्धरण नहीं मिला,) को जोड़कर माउंट पॉइंट के ऊपर (चित्र देखें)।डिस्क उपयोगिता के माध्यम से fstab माउंट विकल्पों को संशोधित करना

यूआईडी को टर्मिनल से "आईडी" कमांड द्वारा 1000 से वैकल्पिक नंबर पर सेट किया जाना चाहिए यदि आप मूल उपयोगकर्ता नहीं हैं, जैसा कि यहां बताया गया है


0

जब ntfs विभाजन को बढ़ाने के लिए मैंने / etc / fstab में एक लाइन जोड़ी तो मुझे यह समस्या हुई। यह मौजूद नहीं था अगर मैं नॉटिलस में "मैन्युअल रूप से" विभाजन को माउंट करता।

उबंटू प्रलेखन बताते हैं कि आप udisks का उपयोग, जो क्या नॉटिलस उपयोग करता है डिस्क माउंट चाहिए।

विभाजन को स्वचालित रूप से बढ़ाने के लिए चरणों का सारांश:

  1. शर्त: विभाजन को माउंट करें और mountकमांड का उपयोग करके इसका नाम (उदाहरण के लिए / dev / sdb1) खोजें ।

  2. विभाजन के uuid जाओ। ->इस आदेश से पहले uuid प्रकट होता है :

    ls -al /dev/disk/by-uuid/

  3. बढ़ते के लिए आदेश होगा:

    /usr/bin/udisks --mount /dev/disk/by-uuid/<the uuid you found previously>

  4. इस कमांड को अपने स्टार्टअप एप्लिकेशन में जोड़ें


1
यह आपको एनटीएफएस विभाजन में फ़ाइलों को निष्पादित नहीं करने देता है
अनवर

-1

उन लोगों के लिए जो GUIs पसंद करते हैं, यहां बताया गया है कि इस आलेख को कैसे हल किया जाए:

  1. sudo apt-get install nemoटाइप करके, उन्नत विशेषाधिकारों के साथ नेमो फाइल एडिटर ( स्थापित करने के लिए) खोलेंsudo nemoएक टर्मिनल में । [यह शायद nautilus में भी काम करेगा, लेकिन मैंने केवल नीमो में परीक्षण किया है]।
  2. माउंट की गई डिवाइस पर राइट-क्लिक करें जहां आपकी फाइलें संग्रहीत हैं, और "गुण" पर जाएं।
  3. "अनुमतियाँ" टैब पर जाएं, और "स्वामी" के लिए, ड्रॉप-डाउन मेनू पर क्लिक करें और अपना उपयोगकर्ता नाम चुनें। सब कुछ बंद करें और अपने सामान्य फ़ाइल प्रबंधक पर वापस जाएं।
  4. आपके द्वारा डिवाइस के स्वामी के रूप में सेट किए जाने के साथ, अब उस डिवाइस पर आपके लिए एक ट्रैश बनाना चाहिए और आपको डिलीट बटन को दबाकर फाइलों को ट्रैश में स्वचालित रूप से स्थानांतरित करने की अनुमति देनी चाहिए।

सूडो के साथ GUI प्रोग्राम चलाना आम तौर पर एक अच्छा विचार नहीं है; कई चीजें गलत हो सकती हैं - जैसे, उदाहरण के लिए जब nemoपहली बार चल रहा है, तो यह लिखेगा कि यह फाइल को कॉन्फ़िगर कर सकता है और निर्देशिका बना सकता है। ये rootउपयोगकर्ता के स्वामित्व में होंगे , न कि उपयोगकर्ता द्वारा लिखित होंगे। और कुछ समय लगेगा जब तक समस्या पर ध्यान नहीं दिया जाता - sudoकमांड को लंबे समय तक भुलाया जा सकता है। उदाहरण के लिए, मुझे लगता nemoहै कि ~user/.local/share/nemo/scripts/पहले रन पर निर्देशिका बनाता है ।
वोल्कर सेगेल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.