статистика не работает с пробелами?

Я использую скрипт для копирования некоторых файлов в зависимости от года, в котором они были созданы, он отлично работает с файлами без пробелов, но с файлами с пробелами возникает проблема с командой статистики, например, у меня есть этот файл: file with spaces.pdf

 stat -c %y ./path/to/file\ with\ spaces.pdf|cut -d '-' -f 1 

возвращает год, например: 2017

но при использовании внутри скрипта:

 year=$(stat -c %y $pathfile | cut -d '-' -f 1) 

это не похоже на работу, и если бы я сделал вывод:

  echo "stat -c %y file | cut -d '-' -f 1" 

и скопируйте его в терминал, он работает, ошибка во всех случаях одинакова, это как игнорирование этой части имени файла: with\ spaces.pdf :

 stat: cannot stat './path/to/file\': No such file or directory 

Я пробовал добавлять кавычки к пути, и он, похоже, не работает:

 year=$(stat -c %y "$pathfile" | cut -d '-' -f 1) 

Я где-то видел, что мне нужно разместить статистику в функции, которую я сделал:

  makestats () { $(stat -c %y $1|cut -d '-' -f 1) } 

но он, похоже, не работает, я получаю ту же ошибку, если вы можете дать мне свою помощь, что было бы здорово.

  • Файл не найден (cygwin в Windows)
  • Должен ли я заботиться о ненужных кошках?
  • Скрипт для просмотра / mysqlshare присутствует во всех серверах списков, делая только первую итерацию
  • Bash не ищет источник ~ / .bash_profile в OSX
  • Чтение двух файлов в цикл IFS while - есть ли способ получить нулевой результат разбора в этом случае?
  • -r имя_файла &&. имя файла
  • Почему «sudo su» в сценарии оболочки не запускает остальную часть скрипта как root?
  • вытягивание строк из смешанного файла строк и двоичных
  • One Solution collect form web for “статистика не работает с пробелами?”

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

     year=$(stat -c %y "$pathfile" | cut -d '-' -f1) 

    Я полагаю, что ваша проблема в вашей переменной, которую вы используете, вместе с последовательностью escape-последовательности. Вам нужно сделать один из них.

     pathfile="/path/to/file with spaces" 
    Interesting Posts

    Как вступить в силу команда `usermod` без выхода из системы и входа в систему

    Как запустить Docker daemon в автономном режиме при запуске

    wget – Как загрузить рекурсивно и только определенные типы / расширения mime (т. е. только текст)

    Почему default setfacl не работает для вложенных каталогов?

    Сохранение подзаголовка в фоновом режиме

    Исправление Linux-ядра on-line (т.е. без перезагрузки)

    Efibootmgr не добавляет идентификатор диска в формате HD

    Сломанный поиск истории после обновления oh-my-zsh

    Как удалить строку, только если она указана в указанном номере строки и соответствует шаблону?

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

    сценарий для повторения команды tshark и каждую минуту, изменяющую имя выходного файла

    Сообщение появляется после завершения каждой команды

    Загрузка модулей ядра NetBSD

    Графический планшет Genius (WP8060U) не работает на Debian

    Каков механизм, при котором процесс, слушая localhost, отказывается обрабатывать запрос на свой IP-адрес LAN?

    Linux и Unix - лучшая ОС в мире.