Могу ли я безопасно запускать плохие блоки в режиме только для чтения на смонтированном диске?

Как и ls -S | голова | xargs rm работает (даже с именами файлов с пробелами и т. д.?)

Нет. xargs по умолчанию разбивается на любые пробелы, а не только на новые строки. И вы не можете увидеть это с | xargs echo , поскольку echo печатает все свои аргументы, разделенные пробелами. (Что-то вроде | xargs printf "% s \ n" будет печатать их, разделенные символами новой строки, поэтому вы увидите, происходит ли разделение в середине имени файла.)

По крайней мере, GNU xargs имеет -d '\ n' для разделения только на символы новой строки, а во многих версиях xargs есть -0 для разделения на символы NUL (это идет с find -print0 ]). Вам понадобится хотя бы первый, но в общем случае имена файлов также могут содержать символы новой строки, и в этом случае head тоже не принесет много пользы.

Я обязан предупредить вас, что синтаксический анализ вывода ls считается неправильным , очевидно, по крайней мере, некоторые версии будут искажать вывод даже без наличия символов новой строки. (Впрочем, вы можете быть в безопасности, если у вас нет новых строк или непечатаемых символов. Возможно.)

2
27.07.2016, 00:18
0 ответов

Теги

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