Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
find /tmp/ -name 'sess_*' | while read a; do rm -f $a; done
то например ls -l abc*
find. -type f -exec rm -v {} \;
find /path/to/directory -type f -delete
$ echo 1 | rm
rm: missing operand
Try `rm --help' for more information.
А в линуксе нельзя просто «удалить папку», он ругается что она не пустая и надо сначала удалить содержимое, а потом папку.Это стандартное поведение
rmdir (и очень правильное поведение); чтобы удалить папку рекурсивно со всем содержимом, нужно говорить rm -r./proc/sys/net/ipv4/ip_local_port_range
32768 61000
16384 65534

netstat -atun | awk '{print $5}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n
6344 10.0.0.2
42981 127.0.0.1
pconnect либо ускоряйте утилизацию эфемерных портовsudo sh -c "echo 5 > /proc/sys/net/ipv4/tcp_fin_timeout" # освобождать через 5 секунд
sudo sh -c "echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle" # включить утилизацию
Имеется в виду вес не содержимого низлежащих файлов, а вес самой папочки, т.е. листинг имен файлов весом 1Gb… около 13млн инод внутри…
for file in /var/www/*
do
[ -x /usr/lib/php5/maxlifetime ] && [ -d $file/data/mod-tmp ] && find $file/data/mod-tmp/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n
200 -r -0 rm
done
find . -type f -exec rm -v {} \;
find . -type f -exec rm -v {} \+
ls -f . | perl -pe 'select(undef,undef,undef,0.1)' | xargs -n 100 rmrm -rfd путь в дебиане и убунте удаляет миллионы файлов без построения списка файлов…-d? man rm про него не знает в ubuntu 12.04-d, --directory
rm -rf ./*
echo * для доказательства).cd .. && rm -r dirname, и всё бы прошло нормально.find . -deleteif(d->d_ino && d->d_ino != 22332748 && d->d_ino != 22332761) { // тут я прописал inode самой директории и директории верхнего уровня, чтобы он не пытался удалять файлы "." и ".." - принимаю подсказки, как это сделать лучше
if(strcmp(d->d_name, ".") && strcmp(d->d_name, ".."))
dp = opendir("/my/dir");
while( (dirent = readdir(dp)) != NULL ) {
// do smth with directory entry
}
However readdir() only reads 32K of directory entries at a time
dp = opendir("/my/dir");
while( (dirent = readdir(dp)) != NULL ) {
// do smth with directory entry TODO: skip subdirectories
unlink(dirent.d_name);
}
Скажу сразу, что драйвера ОС в эрланге будут работать медленно.Что вы имеете в виду под драйверами ОС в эрланге? И почему они должны быть медленными?
максимальное число процессов в ОС на данный момент.При чем здесь OS процессы? beam запускает потоки а не процессы. И, обычно, запускает их по числу ядер. Или вы собираетесь запускать OS процессы через
open_port/2?вторая читает порциями по интерфейсу: ls(offset, count)В Erlang нет такой функции. Если очень хочется — нужно писать порт/драйвер/nif. Но зачем тогда Erlang?
rm пытается сперва загрузить полный список файлов в память и уже потом начать удаление. Мой псевдокод на C полный список не загружает, а считывает одно имя файла за раз и сразу его удаляет.Весь миллион заданий будет назначен на исполнение, без опаски, что из-за этого все зависнет.
Действительно. Зачем? -Когда есть низкоуровневый и понятный CВот и я не понимаю, зачем? Зачем для удаления файлов из каталога писать nif-ы (на C, кстати), запускать миллионы Erlang процессов, отжирать гигабайты RAM. если можно написать простейшую линейную программу на C в 30 строчек?
find /var/www/ -xdev -type f | cut -d '/' -f 2 | sort | uniq -c | sort -n
perl -e '$dir="/var/www/tmp/";opendir(D,$dir)||die("Err\n");while($f=readdir(D)){unlink($dir.$f)}'
Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки