сабж со стажем
можно ли в линуксе удалить файлы кроме занятых?
то есть какие-то ключи к rm видимо чтобы снести все файлы в директории например, кроме тех которые сейчас заняты каким-то процессом.
то есть какие-то ключи к rm видимо чтобы снести все файлы в директории например, кроме тех которые сейчас заняты каким-то процессом.
-
-
23.03.2018 в 16:31-
-
23.03.2018 в 16:40-
-
23.03.2018 в 16:51Код не проверял.
-
-
23.03.2018 в 16:55а куда здесь вставить путь до папки с файлами и маску по расширению? типа *.JPG?
-
-
23.03.2018 в 16:59-
-
23.03.2018 в 17:13надо потестить несколько дней
-
-
25.03.2018 в 00:43> можно ли в линуксе удалить файлы кроме занятых?
Да.
> то есть какие-то ключи к rm
Нет.
При этом неясно что вы на самом деле понимаете под "занятыми". Открытый файловый дескриптор файл никак не занимает, это не шиндошс. Когда вы удаляете открытый в данный момент файл, на самом деле он удалится после того как дескриптор освободится.
Опишите задачу более подробно, есть мнение что вы хотите странного.
> for i in `ls`; do if test -z `lsof -w -t $PWD/$i`; then rm $i; fi; done;
Это ололо-уровень мамкиного хакира. Дёргать весь лсоф с явно зашитым $PWD на каждую итерацию? Разворачивать прям в комстроку? Вообще не кавычить переменные? Махать рукой на файлы с пробелом в имени? Переделывайте.
-
-
25.03.2018 в 07:28ну оно короче исправно удаляет ненужные файлы. не знаю пропускает ли занятые. будем надеятсья что да) ещё раз спасибо :3
ehlo_kitty,
как я уже сказал я очень плохо знаю линукс. так что возможно моя просьба и от незнания, не отрицаю. есть программа которая содаёт исходные файлы, потом ещё одна делает из них другие файлы в той же папке, удаляя исходные. иногда происходит сбой и исходные файлы остаются. они копятся, занимая место. сначала я написал скрипт который просто сносил их раз в сутки, а потом подумал а что если в момент сноса один из файлов будет на самом деле не сбойным а только что созданным и занятым. то есть может конечно ничего критического не произойдёт, но хотелось бы чтобы если файл не сбойный - он пошёл в дело, а не удалился. начал гуглить мой вопрос, ничего не нашёл, пришёл сюда.
в этих файлах нет пробелов
-
-
25.03.2018 в 13:40-
-
25.03.2018 в 14:00-
-
25.03.2018 в 16:19-
-
25.03.2018 в 16:33файлы надо удалять потому что место на диске ограничено. и потому что сбойные файлы, бесконечно размножаясь, начинают тормозить файловую систему и работу программы.
-
-
25.03.2018 в 16:37-
-
25.03.2018 в 16:39ДИВАНОН
-
-
25.03.2018 в 16:41-
-
25.03.2018 в 21:57"Сбой" - видимо, программа падает.
В таком случае помогает причину помогает найти gdb, backtrace в момент падения, и точки останова выше по стеку. Нужен некоторый опыт.
-
-
26.03.2018 в 05:58-
-
26.03.2018 в 06:04Следовательно, список открытых файлов можно увидеть командой ls -l /proc/PID/fd, где PID - process id программы.
-
-
26.03.2018 в 06:09-
-
26.03.2018 в 06:17find /path/to/files -mtime +2 -exec rm {} \;
удалить файлы старше двух дней.
-
-
26.03.2018 в 15:15или вы хотите сказать что не работает? или работает не так как надо?
-
-
26.03.2018 в 22:19