найдите, что команда для удаления файлов говорит, что некоторые файлы не существуют

У меня есть Ноутбук Пумы OSX, подключенный с и система Ubuntu 11.10 и попробованный для копирования той .csv файл с машины OSX на машину Ubuntu. Я остановил передачу файлов, поскольку я понял, что она создала несколько пустых файлов в целевой папке.

У меня теперь есть несколько сотен файлов, находящихся там, который я не могу удалить использование:

sudo find . -name "*.csv" | xargs /bin/rm

Это говорит, что файл не существует.

2
задан 16 February 2018 в 11:14

1 ответ

Не использовать xargs без -0.

(Да, существуют другие безопасные способы использовать xargs, но если Вы заботитесь о них, считайте их в другом месте. Если Вы не хотите запомнить много опций и сценариев, просто не используйте xargs, так или иначе обычно существует лучший путь.)

Проблема с xargs тот его вход, должен быть заключен в кавычки специфическим способом, которым не производит никакой другой инструмент. В частности, это не может справиться с пробелами в именах файлов. Вы не говорите, что ошибка (для дальнейшего использования, сообщения об ошибках вставки копии), но возможности состоят в том, что одни из имен файлов соответствия содержат пространство и xargs, дросселируемый на ней.

xargs -0 справляется с любым странным символом, который Вы можете иметь в имени файла. Передача -print0 кому: find заставить его распечатать имена в правильном формате:

find . -name "*.csv" -print 0 | xargs -0 rm

Отметьте это sudo find … только выполнения find управляйте как корень, не rm команда. Если Вы хотите работать rm как корень, использовать

find . -name "*.csv" -print0 | sudo xargs -0 rm

В соответствии с Ubuntu (и также под OSX), можно использовать findвстроенный -delete опция удалить соответствие файлам.

find . -name "*.csv" -delete

Если Вы знаете, что файлы, которые Вы хотите удалить, пусты, лучше сделайте find команда только ищет пустые файлы, так, чтобы Вы случайно не удаляли другие файлы.

find . -name "*.csv" -type f -empty -delete
3
ответ дан 2 December 2019 в 03:14

Другие вопросы по тегам:

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