![删除 Linux NAS 上的所有 mac `._` 文件?](https://linux22.com/image/1401875/%E5%88%A0%E9%99%A4%20Linux%20NAS%20%E4%B8%8A%E7%9A%84%E6%89%80%E6%9C%89%20mac%20%60._%60%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在尝试从我的旧 NAS 盒(qnap ts209)中删除所有隐藏的 mac 垃圾邮件文件。我尝试了以下操作使用 bash 删除所有 Mac 生成的文件“._”但是我的 NAS 上的 find 命令不包含该-exec
选项。
# [/share/Qweb] # find -name "._*" -exec rm -rf {} \;
Usage: find [PATH...] [EXPRESSION]
Search for files in a directory hierarchy. The default PATH is
the current directory; default EXPRESSION is '-print'
EXPRESSION may consist of:
-follow Dereference symbolic links.
-name PATTERN File name (leading directories removed) matches PATTERN.
-print Print (default and assumed).
-type X Filetype matches X (where X is one of: f,d,l,b,c,...)
-perm PERMS Permissions match any of (+NNN); all of (-NNN);
or exactly (NNN)
-mtime TIME Modified time is greater than (+N); less than (-N);
or exactly (N) days
[/share/Qweb] #
以下是有关我的盒子的一些信息:
[/share/Qweb] # man find
-sh: man: command not found
[/share/Qweb] # cat /etc/*-release
cat: /etc/*-release: No such file or directory
[/share/Qweb] # lsb_release
-sh: lsb_release: command not found
[/share/Qweb] # cat /proc/version
Linux version 2.6.12.6-arm1 (root@NasARM4) (gcc version 3.4.4 (release) (CodeSourcery ARM 2005q3-2)) #2 Sun Sep 18 02:09:29 CST 2011
[/share/Qweb] # uname -a
Linux QNAP 2.6.12.6-arm1 #2 Sun Sep 18 02:09:29 CST 2011 armv5tejl unknown
[/share/Qweb] # uname -mrs
Linux 2.6.12.6-arm1 armv5tejl
我不知道如何从 find 导入 rm,也许这是可能的,我在 SU 中搜索不涉及的答案时感到非常困惑-exec
。(编辑:https://stackoverflow.com/a/11191868/1238884表明管道到 RM 不是一个选项;该死,我也没有这个-delete
选择。0
答案1
似乎你缺少消息要求的 PATH 参数,例如
find . -name "._*" -exec rm -rf {} \;
注意.
这里的。如果不是从当前目录往下,则用起始路径替换。
如果有的话xargs(1)
,您可以使用那个,以便每次调用都可以rm(1)
同时处理多个文件:
find . -name "._*" | xargs rm
要小心,进行一次试运行,例如echo(1)
以确保不会发生任何不愉快的事情。
答案2
创建一个名为“del_apple_files.py”(或类似的文件),在其中粘贴以下内容:
#!/bin/env python
import os
import fnmatch
def purge(dir, pattern):
for root, dirnames, filenames in os.walk(dir):
for filename in fnmatch.filter(filenames, pattern):
match = os.path.join(root, filename)
print(str(match))
os.remove(match)
dir = '/PATH/TO/SHARED/FOLDERS/ROOT'
pattern = '._*'
purge(dir, pattern)
将文件复制到您的 NAS 盒,通过 SSH 进入,并以具有整个共享文件夹访问权限的管理员用户身份运行该文件:
python /PATH/TO/del_apple_file.py
您还可以为其安排一个 cronjob,它只会删除文件而留下文件夹......
享受! ;)