Скажем, у меня есть такая команда:

$ ls -t|tail -n 10

Теперь, если я хочу удалить все файлы, созданные вышеупомянутой командой, если файлы имеют пробелы, это не будет работать:

$ rm `ls -t|tail -n 10`
# assuming the first response is 'The File Name', I get:
rm: cannot remove ‘The’: No such file or directory
rm: cannot remove ‘File’: No such file or directory
rm: cannot remove ‘Name’: No such file or directory

Как я могу процитировать имена файлов перед отправкой в rm?

1 ответ1

1

Попробуй это:

command that outputs files with spaces | while IFS= read -r file
do
  rm "$file"
done

Ввод будет разделен на новые строки, поэтому файлы с новыми строками в их имени не будут работать. Цитирование имен с пробелами работает без проблем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .