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

Я использую скрипт для копирования некоторых файлов в зависимости от года, в котором они были созданы, он отлично работает с файлами без пробелов, но с файлами с пробелами возникает проблема с командой статистики, например, у меня есть этот файл: 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) } 

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

  • Как объединить два файла в одной строке?
  • Bash итерация по парам файлов
  • Тихий результат с двумя идентичными файлами в diff: как их показать?
  • Найти имена репозиториев из гитолитного информационного вывода
  • Сценарий оболочки для обнаружения PDF-файлов с содержимым, отличным от ASCII
  • Сколько снарядов я глубоко?
  • Если я выполнил файл сценария Bash, будут ли выполняться все команды внутри скрипта Bash как sudo?
  • grep до соответствия скобкам
  • One Solution collect form web for “статистика не работает с пробелами?”

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

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

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

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

    Как я могу экспортировать свою цветовую колокольню?

    Найдите PID верхнего использования CPU / MEM, сохраните переменную оболочки

    Сравнить документы PDF со встроенными ссылками?

    Режим файла на MacOSX

    Создание собственного «изображения BBB» для его установки в нескольких BBB?

    Как исключить каталоги с пробелами через PRUNEPATHS локатора?

    Как гарантировать наличие $ BASH_ENV

    Безопасность возможностей против setuid (LD_PRELOAD и т. Д.)

    Есть ли способ узнать, прослушивает ли процесс прослушивание через порт TCP сообщение?

    Могу ли я заставить экран пустым и игнорировать ввод?

    Подсказка: замените пользовательский путь коротким словом, например ~ для дома

    Как отключить систему после выхода определенного процесса

    Как извлечь только файлы, не создавая пути каталога из файла tar.gz?

    Почему debugfs не показывает crtime в наносекундах?

    Выполнение задания Cron при удалении

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