Ubuntu, удалите все файлы, которые начинаются с '._'

5157
Ben Everard

Я хочу удалить все файлы, которые начинаются с ._, когда я запускаю эту команду:

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

Я почти уверен, что .это вызывает проблемы, заставляет думать, что я имею в виду текущий каталог, какой правильный синтаксис для этого?

Я знаю, что эти файлы произошли от моего Mac, мне нужен способ их уничтожения :-)

Большое спасибо

Бен

2
Хм, я не могу воспроизвести вашу проблему. (`touch ._test`,` rm ._ * `работает нормально.) Может быть, есть другие атрибуты, которые имеют значение? Файлы, начинающиеся с точки, не являются чем-то особенным, так как принято «скрывать», например, файлы конфигурации (~ / .profile). Jawa 14 лет назад 0

1 ответ на вопрос

3
Nathan Fellman

Вы можете попробовать это:

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

или если вашей оболочке это не нравится:

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

найти без каких-либо аргументов следует просто перечислить все .

Спасибо! Первые опции работали нормально, когда я сделал это: `find -name ._ \ * | xargs sudo rm -v` <- оставил его просто многословно :-) Ben Everard 14 лет назад 0
Это не будет работать, если имена файлов содержат пробелы или переводы строк. Чтобы их поддерживать, используйте find -print0 и xargs -0. По словам коллеги, удаление всех файлов ._ * портит каталоги SVN. Он использует `найти. -type f -name "._ *" -perm + w -delete`, поскольку файлы ._ * в SVN недоступны для записи. Sjoerd 14 лет назад 1
@Sjoerd, это действительно более элегантно. Nathan Fellman 14 лет назад 0

Похожие вопросы