Intereting Posts
Проверьте, скомпилирован ли бинарный файл Linux как независимый от позиции код Станьте оператором на всех каналах ircd-hybrid Обновление бесплатного размера диска без перезагрузки хоста Соедините все вход и выход терминала с файлом SSH-сервер, прослушивающий несколько портов с беспроблемным доступом, не позволяющий подключать второй порт GNOME-keyring Интеграция с KWallet? Как найти количество вертикальных линий, доступных в терминале? Как найти номер строки в Bash при возникновении ошибки? Поиск и замена с помощью пользовательской утилиты Как сделать резервную копию через rsync на удаленном компьютере, сохраняя разрешения и права собственности? Tracker-extract и Tracker-store обрабатывают огромные объемы ОЗУ Linux Mint – черный экран при загрузке с живого USB Как я могу найти шаблон одного файла в другом и сохранить результат каждого шаблона в новом файле Любой способ интерпретировать pstree? grep для строк, которые были найдены в предыдущем заявлении

Как перенести файл в другой каталог, как только он будет создан, в Linux?

Я хочу переместить весь файл * .xxx, созданный в каталог, в другой каталог. Но, я хочу, чтобы как только файлы были созданы, они должны перейти в другой каталог. Пожалуйста помоги. Заранее спасибо.

  1. Установите пакет inotify-tools в свой дистрибутив.
  2. Используйте команду inotifywait чтобы создать непрерывный поиск в нужной директории. Пример: inotifywait -m -r -e create /src_dir . Этот инструмент может просматривать другие аспекты файловой системы (изменения атрибутов, закрыть запись, перемещать, удалять), поэтому давайте придерживаться вещи создания файла.
  3. Предварительно отправьте уведомление и продолжайте работу с этой командой и выполните ее с пользователем, имеющим достаточно привилегий:

     inotifywait -m -r -e create /src_dir | while read file; do mv /src_dir/*.xxx /dst_dir done 

Детальное объяснение:

  • inotifywait – команда, использующая API-интерфейс inotify. rovides механизм для мониторинга событий файловой системы. man inotify для дальнейших деталей.
  • -m – Продолжать работу inotifywait после первого события.
  • -r – Запустить рекурсивно. Удалите это, если вы этого не хотите.
  • -e create – Уведомлять об определенном событии. Тот, который мы используем, создается. Опустите этот параметр, чтобы контролировать все известные события
  • /src_dir – Аргумент контролируемого места
  • | – Оператор труб. Перенаправить один вывод команды в другой.
  • /while (...) done – Переместите все, что называется * .xxx, из /src_dir в пункт назначения, называемый /dst_dir . Цикл будет гарантировать, что это перемещение произойдет каждый раз, когда событие запускается командой inotifywait .

Извлеченные из карт человека:

 -m, --monitor Instead of exiting after receiving a single event, execute indefinitely. The default behaviour is to exit after the first event occurs. -e <event>, --event <event> Listen for specific event(s) only. The events which can be listened for are listed in the EVENTS section. This option can be speci‐fied more than once. If omitted, all events are listened for. -r, --recursive Watch all subdirectories of any directories passed as arguments. Watches will be set up recursively to an unlimited depth. Symbolic links are not traversed. Newly created subdirectories will also be watched. 

Надеюсь, поможет 🙂