我有一个USB驱动器插入我的Mac。.Trashes
当为USB驱动器清空垃圾箱(右键单击“ 垃圾箱”图标并运行“空垃圾箱”)时,我发现的内容没有被清空
可能是什么问题?还有其他方法可以清空USB驱动器的垃圾吗?
rm -R /Volumes/volumename/.Trashes/$UID
我有一个USB驱动器插入我的Mac。.Trashes
当为USB驱动器清空垃圾箱(右键单击“ 垃圾箱”图标并运行“空垃圾箱”)时,我发现的内容没有被清空
可能是什么问题?还有其他方法可以清空USB驱动器的垃圾吗?
rm -R /Volumes/volumename/.Trashes/$UID
Answers:
其他用户的垃圾箱中可能有文件。的.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
如您所见,在我的USB磁盘.Trashes
文件夹中,有一个名为的子文件夹502
,由用户ID 502拥有(供参考,我当前的用户ID为501)。由于该用户在我的系统上不存在,因此将其显示为_unknown
,并且用户无法查看其内部,也无法删除它。要查看该文件夹,我们需要以管理员身份进行操作(即使用sudo
)。
如果确定要删除,可以使用以下命令删除整个文件夹,以删除所有人的垃圾箱.Trashes
:
sudo rm -R /Volumes/volumeName/.Trashes
警告:与涉及任何内容sudo
(“以超级用户身份执行”,即系统管理员)和一样rm -R
,请谨慎使用。如果输入错误,可能会导致... 令人不愉快的后果。
sudo rm
和 的命令可能很危险/Volumes/*/something
,因为它甚至可能影响您的系统驱动器,而且输入错误可能会造成严重后果。
通常的行为:
从USB驱动器上删除某些内容时,该内容会移动到.Trashes
该卷上的文件夹中。插入计算机后,删除的物品将与其他所有物品一起出现在垃圾桶中。
拔出电源后,从该驱动器中删除的项目将不再显示在垃圾箱中,直到您再次插入电源。然后,您可以清空垃圾箱。它将真正从该驱动器中删除它们。
如果那不是您的事情,这是我的建议:
cmd-i
(或使用菜单项File
→ Get Info
)。Sharing and Permissions
窗口的部分Everyone
将权限授予Read and Write
。我不知道这是最好的答案,但至少它是有效的答案。
打开命令行,cd到USB卷(对于我的情况为/ Volumes / USB),然后键入:
/bin/rm -rf ./Trashes/* works fine with me.
2解决方案。1使用Bash,另一种使用包装在AppleScript中的Bash。
/Applications/Utilities/AppleScript Editor
输入以下代码:
使用管理员权限执行shell脚本“ rm -rf /Volumes/*/.Trashes/*”
注意:这将清空所有连接的卷(包括内部硬盘)的回收站。如果您已连接5个USB驱动器和一个Firewire硬盘,它将清空所有这些驱动器的垃圾。
将以下代码粘贴到文本编辑器中,然后保存文件
#!/ bin / bash
sudo rm -rf / Volumes / * /。垃圾桶/ *
将文件保存到扩展名方便的位置.sh
,然后使其可chmod +x {filename}.sh
从终端执行
./{filename}.sh
注意:与上述相同。这可以从终端执行。
我使用此脚本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