remove todos os arquivos mac '._' no Linux NAS?

0

Estou tentando remover todos os arquivos mac ocultos de spam da minha antiga caixa NAS (qnap ts209). Eu tentei seguir Remover todos os arquivos gerados pelo Mac '._' com bash mas o comando find no meu NAS não inclui a opção -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] #

Veja algumas informações sobre minha caixa:

[/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

Eu não tenho idéia de como canalizar de find into rm, talvez seja possível, fiquei bastante confuso procurando por SU por respostas que não envolvem -exec . (Editar: link sugere que a canalização para o RM não é uma opção; porra, eu não tenho a opção -delete ou.0

    
por frumbert 18.03.2014 / 23:42

2 respostas

1

Parece que você está perdendo o argumento PATH que a mensagem está pedindo, ou seja, algo como

find . -name "._*" -exec rm -rf {} \;

Observe o . aqui. Se não estiver no diretório atual, substitua pelo caminho inicial.

Se você tiver xargs(1) , poderá usá-lo para que cada invocação de rm(1) processe vários arquivos de uma só vez:

find . -name "._*" | xargs rm

Tenha cuidado, faça uma chamada a seco, por ex. apenas echo(1) para garantir que nada de errado aconteça.

    
por 19.03.2014 / 02:00
0

Crie um arquivo chamado "del_apple_files.py" (ou similar), dentro dele cole isto:

#!/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)

Copie o arquivo para sua caixa NAS, SSH nele e execute o arquivo como um usuário administrador com permissões de acesso em todas as suas pastas compartilhadas:

python /PATH/TO/del_apple_file.py

Você também pode agendar um cronjob para isso, ele só excluirá arquivos e deixará as pastas para trás ...

Aproveite! ;)

    
por 18.11.2016 / 15:51

Tags