Если у вас есть GNU find
, возможно, что-то вроде
find path/to/dir -type d -printf '%P\0' |
rsync -0av --files-from=- path/to/dir/ path/to/newdir/
сделает то, что вы хотите (проверьте, заменив -0av
на -0avn
).
В зависимости от ваших критериев поиска вы можете использовать только rsync
с подходящими фильтрами, например для копирования всей структуры каталогов
rsync -avn -f'+ */' -f'- *' path/to/dir/ path/to/newdir/
См., например, Linux: rsync Копировать только дерево структур каталогов
Задания Cron на самом деле не подходят для управления настольными приложениями. Вам будет лучше запускать приложение из циклического сценария оболочки; в простейшем виде
#!/bin/sh
cd /home/masoud/Desktop/vision3
while :; do ./vision; done
Таким образом, всякий раз, когда видение
останавливается, оно будет запускаться снова.
Вы можете спланировать «стратегию выхода» на тот случай, когда вы действительно хотите остановить программу. Это будет делать:
#!/bin/sh
cd /home/masoud/Desktop/vision3
while [ ! -f no_vision ]; do ./vision; done
Затем, когда вы захотите остановить программу,
touch /home/masoud/Desktop/vision3/no_vision
и закрыть ее - сценарий оболочки тоже остановится.