Щойно я виявив заплутану помилку:
rm: cannot remove `xxx/app/cache/prod': Directory not empty
що було викликано наступною командою:
rm -rf $cache_dir/*
де $cache_dirвизначено якxxx/app/cache
Тож я бачу це так: rmвидалив усе в cache/proddir, потім прямо перед тим, як спробувати видалити cache/prodкаталог - інша програма створила файл / каталог всередині нього, таким чином, це спричинило rmзбій.
Чи правильне моє припущення?
rm -rfтим, щоб бути безпечним для потоків: якщо ви запускаєте його кілька разів одночасно в одному каталозі, каталог видаляється. Йдеться про rm -rне атомне.
rmвиклик, ми можемо говорити про безпеку потоку. Але все одно, це нічого не змінює
rm -rне атомне. Якщо ви хочете бути впевнені, що більше файлів не створюється в каталозі під часrm -rfзапуску, ви можете перейменувати його спочатку, а потім видалити перейменований каталог.