Я использую pushbullet для отправки списка недавно измененных файлов к моему телефону каждое утро. Я использую, Находят и printf, чтобы убрать список и продвинуть его к pushbulet сценарию.
/home/user/scripts/pushbullet/pushbullet.sh "Synced: `find /mnt/1tb/tv/ /mnt/1tb/movies/ -type f -ctime -1 | wc -l`" "`find /mnt/1tb/tv/ /mnt/1tb/movies/ -type f -ctime -1 -printf "%f\n"`"
Сначала это получает количество измененных файлов и затем список измененных файлов без каталога.
Проблема состоит в том, если имя файла File&Cheese.mkv
сообщение отправило мне остановки в 'Файле' и ничем после того, как амперсанд отправляется. Это - проблема с pushbullet сценарием.
Я думаю, что было бы самым легким только удостовериться, что каждая строка списка, который производится, входит в кавычки, но я не могу разработать, как сделать это.
Какие-либо идеи?
Можно получить каждое имя файла в кавычках путем передачи по каналу Вашего find
вывод к while
и использования echo
find ... | while read line ; do echo \""$line"\" ; done
замена find ...
с целым find
команда.
завершенные кавычки \"
распечатают литерал "
вокруг каждой строки, но также и заключат переменную в кавычки для предотвращения расширений.
Вывод будет похож
"my file"
"another file"
"File&Cheese.mkv"