Ubuntu, lösche alle Dateien, die mit '._' beginnen

2

Ich möchte alle Dateien löschen, die mit beginnen ._, wenn ich diesen Befehl ausführe:

me@me:/var/www/my/project$ sudo rm -Rvi ._*
rm: cannot remove `._*': No such file or directory

Ich bin mir ziemlich sicher, .dass dies Probleme verursacht, und denke, ich meine das aktuelle Verzeichnis. Was ist die richtige Syntax, um dies zu erreichen?

Ich weiß, dass diese Dateien von meinem Mac stammen. Ich brauche eine Möglichkeit, sie zu bereinigen :-)

Danke vielmals

Ben

Ben Everard
quelle
Hmm, ich kann Ihr Problem anscheinend nicht reproduzieren. ( touch ._test, rm ._*funktioniert gut.) Vielleicht gibt es einige andere Attribute, die den Unterschied machen? Dateien, die mit einem Punkt beginnen, sind nichts Besonderes, da es üblich ist, zB Konfigurationsdateien (~ / .profile) zu "verstecken".
Jawa

Antworten:

3

Sie können dies versuchen:

find -name ._\* |xargs sudo rm -Rvi

oder wenn deine Shell das nicht mag:

find |grep -e '^\._' | xargs sudo rm -Rvi

find sollte ohne argumente einfach alles auflisten .

Nathan Fellman
quelle
Vielen Dank! Die ersten Optionen funktionierte gut , wenn ich dies tat: find -name ._\* |xargs sudo rm -v<- links mit nur ausführliche :-)
Ben Everard
1
Dies funktioniert nicht, wenn Dateinamen Leerzeichen oder Zeilenumbrüche enthalten. Verwenden Sie find -print0 und xargs -0, um diese zu unterstützen. Laut einem Kollegen bringt das Entfernen aller ._ * -Dateien die SVN-Verzeichnisse durcheinander. Er verwendet find . -type f -name "._*" -perm +w -delete, weil ._ * -Dateien in SVN nicht beschreibbar sind.
Sjoerd
@Sjoerd, das ist ja eleganter.
Nathan Fellman