Intereting Posts
Устанавливать хранилище с хоста в bhyve VM Сжатие tar-файла без извлечения содержимого Скопировать папки сразу Укажите скрипт для запуска с SSH при входе в систему Какой лучший и безопасный способ сохранить настройки приложения? Как Linux winbindd определяет доступный контроллер домена? Как выбрать расширяемую папку при сохранении? Привод изменяет имя файла устройства после возобновления с suspend (Linux Mint 14) Samba4 DNS – очистить старые записи DNS Bluetooth – Отсоединение и повторное соединение без необходимости сканирования Поиск файлов, имеющих подтвержденный дубликат в том же каталоге, рекурсивно Преобразование позиционных аргументов сценария оболочки Почему Ubuntu 16.04 исполняет ограниченное изображение C # после 90 секунд, а другие – 24X7? сортировать на рабочих местах в хронологическом порядке как отправлять почту через другой почтовый сервер на linux

UNIX Script не читает папки с пробелами

У меня есть сценарий UNIX, который должен сканировать все папки и возвращать файлы старше определенного времени. Я дал логику, как показано ниже, но сценарий не может читать папки с пробелами. Может ли кто-нибудь помочь в том, как сделать эту работу?

DIR = '/ A / B / тест';

скрипт сканирует все подкаталоги после теста, но не может сканировать каталоги с пробелами, например «тестовый скрипт».

Итак, у вас есть что-то вроде этого:

$ foo='my dir' $ ls $foo my: no file or directory found dir: no file or directory found 

Вместо этого попробуйте следующее:

 $ foo='my dir' $ ls "$foo" 

Или еще лучше:

 $ ls "${foo}" 

Оба этих метода защищают символ [: space:] от интерпретации оболочки и гарантируют, что он читается как символ [: space:], а не точка прерывания для команды.

Это очень хорошая привычка вступать при написании сценариев оболочки!