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