Удаление файла со специальными символами через терминал, который был выбран другой командой

391
Gethen Sullivan

это мой первый пост, так что иди осторожно :)

Я создаю AppleScript, который запускает команды bash для выбора и удаления самого последнего измененного файла в указанной группе папок. Имя файла будет отличаться каждый раз.

Я видел, как удалить файл со специальными символами, когда вы знаете фактическое имя файла, но в моем случае имя файла обнаруживается с помощью ls. К сожалению, когда мне удалось удалить файл с помощью команды rm, он все испортил и не может идентифицировать файл из-за наличия в его имени вопросительных знаков и пробелов. Есть ли способ добавить кавычки на внешней стороне переменной, чтобы он мог быть адресован правильно? Или есть лучший способ. Я даже не могу понять, как переименовать файл. Кроме того, я хочу только изменить / удалить этот файл, я не могу переименовать все файлы в папке.

Вот пример одного из имен файлов. +61 434 570 460 2016-12-22 15.01.27.ichat

И вот код, который я пытаюсь заставить работать; rm -fr $ (ls -t | head -n1)

Спасибо за ваши комментарии :)

0

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

0
Gethen Sullivan

В конце концов, я решил это, мне пришлось заключать в кавычки кавычки, т.е. добавлять к команде кавычки.

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

rm -f "" "$ (ls -t | tail -1)" ""

Приветствия.

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