ล้างถังขยะของไดรฟ์ USB


41

ฉันเสียบไดรฟ์ USB เข้ากับ Mac แล้ว สิ่งที่ฉันพบ.Trashesไม่ได้ถูกทำให้ว่างเปล่าเมื่อถังขยะตะกอน (คลิกขวาที่ไอคอนถังขยะและเรียกใช้ "ล้างถังขยะ") สำหรับไดรฟ์ USB

มีอะไรผิดปกติ? มีวิธีอื่นในการล้างข้อมูลในไดรฟ์ USB หรือไม่


9
สิ่งที่น่าสนใจคือการล้างถังขยะจะทำได้สำเร็จสำหรับไดรฟ์ USB ของฉัน ร้องเรียนเท่านั้นฉันเกี่ยวกับเรื่องที่ฉันมักจะต้องการเพียงว่างขยะในไดรฟ์ USB ของฉันและไม่จำเป็นต้องทำเพื่อให้ไดรฟ์ในทุกระบบ
Matthew Frederick

4
@Matthew tryrm -R /Volumes/volumename/.Trashes/$UID
Gordon Davisson

@Gordon สมบูรณ์แบบขอบคุณ! สร้าง Applescript บรรทัดเดียวเพื่อเรียกใช้คำสั่งและเป็นเพียงการกดปุ่ม QuickSilver สองครั้งทุกเวลา
Matthew Frederick

คำตอบ:


35

เป็นไปได้ว่ามีไฟล์อยู่ในถังขยะของผู้ใช้คนอื่น .Trashesโฟลเดอร์ที่ด้านบนของแต่ละไดรฟ์มีโฟลเดอร์ย่อยสำหรับผู้ใช้ที่แตกต่างกันในแต่ละครั้งจากจำนวนผู้ใช้ ID (เช่นผู้ใช้ 502 ของถังขยะที่อยู่ใน.Trashes/502)
คุณสามารถดูได้ด้วยตัวคุณเองโดยใช้คำสั่งเช่นนี้ (แทนที่VolumeNameด้วยชื่อไดรฟ์ของคุณ):

ls -la /Volumes/VolumeName/.Trashes/
total 0
d-wx-wx-wt@  3 _unknown  _unknown   102 10 Feb 18:15 .
drwxrwxrwx@ 21 root      wheel      782 13 Feb 14:17 ..
drwx------@ 35 _unknown  _unknown  1190 13 Feb 14:18 502

อย่างที่คุณเห็นใน.Trashesโฟลเดอร์ดิสก์ USB ของฉันมีโฟลเดอร์ย่อยชื่อ502เจ้าของ ID ผู้ใช้ 502 (สำหรับการอ้างอิง ID ผู้ใช้ปัจจุบันของฉันคือ 501) เนื่องจากผู้ใช้รายนี้ไม่มีอยู่ในระบบของฉันฉันจึงเห็นว่าเป็น_unknownและผู้ใช้ของฉันไม่สามารถดูภายในได้และไม่ลบ หากต้องการดูภายในโฟลเดอร์นั้นเราจำเป็นต้องทำในฐานะผู้ดูแลระบบ (เช่นใช้sudo)

หากคุณแน่ใจว่าต้องการคุณสามารถลบถังขยะของทุกคนโดยการลบทั้ง.Trashesโฟลเดอร์ด้วยคำสั่งเช่น:

sudo rm -R /Volumes/volumeName/.Trashes

คำเตือน:เช่นเดียวกับสิ่งที่เกี่ยวข้องsudo( "ทำในฐานะผู้ใช้ขั้นสูง"เช่นผู้ดูแลระบบ) และrm -Rใช้อย่างระมัดระวัง หากคุณพิมพ์ผิดอาจมี ... ผลที่ไม่พึงประสงค์


ว่า "อาจจะอยู่ในถังขยะของคนอื่น" คือว่าปัญหาที่ผมทำงานเป็น ควรโฆษณานี้ดีกว่า!
cdeszaq

การเพิ่มสวิตช์ -f ไปยังคำสั่งจะเป็นการบังคับให้ดำเนินการ การแทนที่ "volumename" ด้วย "*" จะช่วยให้คุณสามารถเชื่อมต่อไดรฟ์ USB หลายตัวและทำให้ถังขยะทั้งหมดว่างเปล่าได้ในเวลาเดียวกัน ไม่ต้องเชื่อมต่อแบบ 1 ต่อ 1 จากนั้นทำใหม่
Danijel-James W

อาจเป็นอันตรายในการเรียกใช้คำสั่งที่เกี่ยวข้องกับทั้งสองsudo rmและ /Volumes/*/somethingเนื่องจากอาจส่งผลกระทบแม้กระทั่งไดรฟ์ระบบของคุณและการพิมพ์ผิดอาจมีผลกระทบที่ไม่ดี
gerlos

8

พฤติกรรมปกติ:
เมื่อคุณลบบางสิ่งบางอย่างออกจากไดรฟ์ USB มันจะถูกย้ายไปยัง.Trashesโฟลเดอร์บนไดรฟ์ข้อมูลนั้น เมื่อเสียบเข้ากับคอมพิวเตอร์รายการที่ถูกลบจะปรากฏในถังขยะพร้อมสิ่งอื่น

เมื่อคุณถอดปลั๊กออกรายการที่คุณลบออกจากไดรฟ์นั้นจะไม่ปรากฏในถังขยะอีกต่อไปจนกว่าคุณจะเสียบอีกครั้ง จากนั้นคุณสามารถล้างข้อมูลในถังขยะ มันจะจริงๆลบออกจากไดรฟ์ที่

หากนั่นไม่เกิดขึ้นกับคุณนี่คือคำแนะนำของฉัน:

  1. เลือกไดรฟ์ในแถบด้านข้าง Finder ของคุณ
  2. โดยไม่เลือกอะไรเลยกดcmd-i(หรือใช้รายการเมนูFileGet Info)
  3. ใช้Sharing and Permissionsส่วนของหน้าต่างที่จะให้สิทธิ์ในการEveryoneRead and Write

สิ่งนี้ควรเป็นที่ยอมรับ
zsitro

7

ฉันไม่รู้ว่ามันเป็นคำตอบที่ดีที่สุด แต่อย่างน้อยก็เป็นคำตอบที่ใช้ได้

เปิดบรรทัดคำสั่ง cd ไปยังโวลุ่ม USB (/ Volumes / USB สำหรับเคสของฉัน) และพิมพ์:

/bin/rm -rf ./Trashes/* works fine with me.

เรื่องนี้จะต้องให้ผู้ใช้ต้องไปที่ปริมาณที่เฉพาะเจาะจงในแต่ละครั้ง จากคำตอบของคุณฉันได้คิดวิธี Bash script และ AppleScript
Danijel-James W

2

2 โซลูชั่น 1 ใช้ Bash อีกอันโดยใช้ Bash ใน AppleScript

โซลูชัน # 1

  1. สร้าง AppleScript ใหม่ด้วย /Applications/Utilities/AppleScript Editor
  2. พิมพ์รหัสต่อไปนี้:

    ทำเชลล์สคริปต์ "rm -rf /Volumes/*/.Trashes/*" ด้วยสิทธิ์ผู้ดูแลระบบ

  3. บันทึกไฟล์ไปที่ใดก็ได้ที่สะดวกและเรียกใช้เมื่อใดก็ตามที่คุณต้องการล้างถังขยะ USB
  4. สิ่งนี้สามารถดำเนินการได้โดยการดับเบิลคลิกที่มัน

หมายเหตุ:นี่จะทำให้ถังขยะว่างเปล่าสำหรับโวลุ่มที่เชื่อมต่อทั้งหมดรวมถึงฮาร์ดดิสก์ภายในของคุณ หากคุณเชื่อมต่อไดรฟ์ USB 5 ตัวและฮาร์ดดิสก์ Firewire มันจะทำให้ถังขยะว่างสำหรับพวกเขาทั้งหมด


โซลูชัน # 2

  1. เปิดไฟโปรแกรมแก้ไขข้อความที่คุณโปรดปราน(mine is nano)
  2. วางรหัสต่อไปนี้ลงในโปรแกรมแก้ไขข้อความและบันทึกไฟล์

    #! / bin / bash
    sudo rm -rf /Volumes/*/.Trashes/*

  3. บันทึกไฟล์ไปยังที่ที่สะดวกด้วยส่วนขยาย.shแล้วทำให้สามารถเรียกใช้งานได้chmod +x {filename}.shจาก Terminal

  4. เรียกใช้ด้วย ./{filename}.sh

หมายเหตุ: หมายเหตุเดียวกันกับข้างต้น นี่คือปฏิบัติการจากเทอร์มินัล


2

ฉันใช้สคริปต์นี้ AppleScript บันทึกเป็น Application:

on open these_volumes
    set t_id to user ID of (system info)
    repeat with i in these_volumes
        if (kind of (info for i without size)) is "Volume" then
            set tPath to (POSIX path of i) & ".Trashes/" & t_id
            do shell script "/bin/rm -Rf  " & (quoted form of tPath) & "/*"
        end if
    end repeat
end open

ลาก / วางเสียงบนแอปพลิเคชัน

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


หากคุณต้องการนำไดรฟ์ข้อมูลออกหลังจากล้างถังขยะให้ใช้สคริปต์นี้

on open these_volumes
    set t_id to user ID of (system info)
    set volToEject to {}
    repeat with i in these_volumes
        if (kind of (info for i without size)) is "Volume" then
            set tPath to (POSIX path of i) & ".Trashes/" & t_id
            do shell script "/bin/rm -Rf  " & (quoted form of tPath) & "/*"
            set end of volToEject to contents of i
        end if
    end repeat
    if volToEject is not {} then tell application "Finder" to eject volToEject
end open

ในการทำให้แอปพลิเคชันทำงานได้เพียงลากอุปกรณ์ที่เชื่อมต่อหรือไดรฟ์ไปยังแอปพลิเคชัน AppleScript แล้วปล่อย คุณสามารถสร้างนามแฝงบนแท่นติดกับถังขยะปกติเพื่อความสะดวกโดยการลากและวางไอคอนแอปพลิเคชันลงใน side-dock
Tony_kenya
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.