PDA

Visualizza la versione completa : 218000 files da cancellare


Wave
09-07-2004, 17:52
oppure con uno scriptino fanne fuori un po alla volta.....

mcz
09-07-2004, 18:21
Ammesso che inizino con una lettera portati dentro la directory e prova:
rm a*
rm b*
ecc.

mcz

gianiaz
09-07-2004, 18:39
Originariamente inviato da McAuriel V
solo che questi 218000 (si, duecentodiciottomila ) files son contenuti tutti in una directory e un bel
rm -f ./*
si rifiuta di funzionare

metodi alternativi?

non è meglio chiedersi perchè non funziona il comando?

tipo scendere nel livello sotto?
ad esempio

/home/mcauriel/files/

contiene i 218000 file.

cd /home/mcauriel/
rm -rf files/

non funziona?
se non funziona perchè?
problemi di permessi?

:ciauz:

Ikitt
09-07-2004, 19:05
Originariamente inviato da McAuriel V
solo che questi 218000 (si, duecentodiciottomila ) files son contenuti tutti in una directory e un bel
rm -f ./*
si rifiuta di funzionare

metodi alternativi?



find /base/dir -type f -exec rm -f "{}" \;
rm -rf /base/dir

Ikitt
09-07-2004, 19:06
Originariamente inviato da gianiaz
non è meglio chiedersi perchè non funziona il comando?


Io punto sulla riga di comando (considerata l'espansione della shell) troppo lunga.

Sergio Pedone
10-07-2004, 10:03
ricerca in /base/dir i file e solo i file
quindi li elimina.
Terminata l'eliminazione dei file, elimina /base/dir

ciao

Ikitt
10-07-2004, 10:15
Originariamente inviato da McAuriel V
cosa fa esattamente :confused:

Il significato della cmdline l'ha gia` ben spiegato Sergio Pedone.
Il motivo per cui l'ho proposto e` il seguente:
personalmente sospetto che

rm -rf ./*
si areni a causa dell'eccessivo numero di nomi di file, espansi dalla shell, che vanno a comporre la riga di comando.

se si passa da find, rm operera` un file alla volta, risolvendo il problema (se tale e`) dal suo punto di vista.
find medesimo non dovrebbe avere problemi perche` comunque opera dovrebbe vedere "pochi" file alla volta.

dalang
10-07-2004, 23:51
Forse è una fagianata, ma
rm -rf ./* cerca di cancellare TUTTI i file della directory in cui sei, compreso ".", ed essendo nella directory non te lo lascia fare...

prova con
cd ..
rm -rf nomedirectory


Tanto per sapere: ma che errore ti da rm -rf ./* ???

Bye.

/dev/null
11-07-2004, 03:05
Non li cancella perchè ad un programma si possono passare fino ad un dato numero di argomenti ( mi pare fino a ~65000 )...

Se i files comunque si chiamano tutti:
abracadabra-XXXXXXXXXX-XXalacazamXX.php
(dove X e' un valore random)
Puoi fare:
rm -rf abracadabra-1*-*alacazam*.php
rm -rf abracadabra-2*-*alacazam*.php
rm -rf abracadabra-3*-*alacazam*.php
rm -rf abracadabra-4*-*alacazam*.php
rm -rf abracadabra-5*-*alacazam*.php
rm -rf abracadabra-6*-*alacazam*.php
rm -rf abracadabra-7*-*alacazam*.php
rm -rf abracadabra-8*-*alacazam*.php
rm -rf abracadabra-9*-*alacazam*.php
rm -rf abracadabra-0*-*alacazam*.php
rm -rf abracadabra-a*-*alacazam*.php
rm -rf abracadabra-b*-*alacazam*.php
rm -rf abracadabra-c*-*alacazam*.php
e così via...
Dopo un pò (quando ne sono stati cancellati abbastanza) dovrebbe bastar fare
rm -rf abracadabra-*-*alacazam*.php

/dev/null
11-07-2004, 03:11
Per l'esattezza ad un programma si possono passare esattamente fino a 131072 argomenti...
TUTTO ha un limite sul computer, anche il numero di processi che possono esserci, il numero di programmi connessi ad un files, il numero di symlink che linkano un files... :bhò:
I valori minimi di questi limiti sono decretati (per i sistemi unix che rispettano lo standard POSIX) dallo standard POSIX, ma linux (come tutti gli unix-like moderni, vista la spropositata crescita della potenza dei computer) li supera quasi tutti di moltissimissimo

Loading