Newsgroup: it.comp.macintosh
Titolo: Per esperti di FTP

Qualcuno sa se esiste un comando raw che permetta di cancellare una
directory non vuota? RMD funziona solo se la directory è vuota.
-- 
Salutandovi indistintamente

 No, AFAIK non ce n'e`.
:-/ Avevo preparato uno script che oltre a caricare file e cartelle su
un server FTP, quando venivano aggiunte a una cartella, li rimuoveva dal
server quando venivano tolti dalla cartella. Per i file tutto a posto,
ma per le cartelle c'è questo problema: secondo te ci sono vie di
uscita?
-- 
Salutandovi indistintamente

 considerando che interarchy si fa un giretto ricorsivo...
Sì, ma se passi per un'applicazione tipo Interarchy o Transmit (che tra
l'altro non tutti hanno e sono a pagamento), l'operazione non avviene
più in maniera trasparente. La cosa mi piaceva perché in quel modo
mettevi e toglievi roba dal server senza accorgerti di nulla...
-- 
Salutandovi indistintamente

 ricorsivo o lo fai tu oppure cerchi il porting di mirrordir :-)
Ah... :-) Comunque mi sa che il giretto ricorsivo è un bel casino, mi sa
che desisto...
-- 
Salutandovi indistintamente

 No, AFAIK non ce n'e`.
dipende dal demone ftpd che ha montato, alcuni supportano pipe-command
(con, ad esempio, di mdelete e rm)
EmJey
-- 
Non prendere la vita troppo sul serio... non ne uscirai mai vivo
http://www.joram.it/articoli/informatica/futuro.htm

 RMD funziona solo se la directory č vuota.
anche "help" potrebbe diventare tuo amico sai...


 anche "help" potrebbe diventare tuo amico sai...
A parte che non sai di cosa si sta parlando, evidentemente, leggere
tutto il thread no...?
-- 
Salutandovi indistintamente

 tutto il thread no...?
scarico, rispondo, riscarico/invio magari dopo un po', prima il thread
non c'era.
Cmq non preoccuparti, non accadra' di nuovo.


 ricorsivo o lo fai tu oppure cerchi il porting di mirrordir :-)
Forse potrei seguire un'altra strada: invece di usare un comando secco
"ncftpls" per passare i raw command, potrei provare a scriptare una
sessione di ncftp, che supporta il comando "rm -r". Ma dentro un
AppleScript, con "do shell script" si possono inserire script veri e
propri o ci si deve limitare a un singolo comando?
-- 
Salutandovi indistintamente

 temporanea utente, l'ho eseguito, l'ho cancellato :-P
Mi basterebbe passare questo:
ncftp -u userID -p password 
ftp://ftp.pippo.com/
 << EOF
rm -r "nome_directory"
close
EOF
-- 
Salutandovi indistintamente

 chiunque sia loggato o loggabile, sarebbe meglio usare ~/.netrc
ncftp usa ~/.ncftp/bookmarks. Solo che ncftpput (che è il comando che
uso per caricare) no, quindi nello script ce li devo mettere, a meno di
non cambiare strategia anche per la fase di carico.
-- 
Salutandovi indistintamente

 Dovrebbe andare :-)
Questo è lo script:
property theUserid : "nome_utente"
property thePassword : "password"
property theServer : "server_ftp" -- es. "
ftp.apple.com
"
property theRemotePath : "/" -- obbligatorio: usa "/" per la directory
root
on adding folder items to this_folder after receiving these_items
tell application "Finder"
set thePath to quoted form of POSIX path of (this_folder as alias)
set LocalItems to ""
repeat with theItem in these_items
set LocalItems to LocalItems & " " ¬
& quoted form of (name of theItem as text)
end repeat
do shell script ¬
"cd " & thePath & "; ncftpput -R -u " & theUserid & " -p " ¬
& thePassword & " " & theServer & " " & theRemotePath & LocalItems
end tell
end adding folder items to
on removing folder items from this_folder after losing these_items
tell application "Finder"
set LocalItems to ""
repeat with theItem in these_items
set LocalItems to LocalItems & " " & quoted form of (name of theItem as
text)
end repeat
do shell script "ncftp -u " & theUserid & " -p " & thePassword & " " &
theServer & " " & theRemotePath & " << EOF
rm -r" & LocalItems & "
close
EOF"
end tell
end removing folder items from
L'ho provato e funziona. La cosa strana è che nella documentazione di
ncftp c'è scritto:
"rm
If you need to delete a remote file you can try the rm command. Much of
the time this won't work because you won't have the proper access
permissions. This command doesn't accept any flags, so you can't nuke a
whole tree by using ``-rf'' flags like you can on UNIX."
Eppure va: forse la documentazione non è aggiornata.
-- 
Salutandovi indistintamente

 Dovrebbe andare :-)
Questo è lo script:
property theUserid : "nome_utente"
property thePassword : "password"
property theServer : "server_ftp" -- es. "
ftp.apple.com
"
property theRemotePath : "/" (* obbligatorio: usa "/" per la directory
root *)


 Non scaldarti, leggendo di corsa non ho fatto caso al raw
Non faccio fatica a credere che ti possa essere sbagliato per una
svista: capita a tutti. MI riesce più difficile credere che anche
l'inutile sarcasmo della tua risposta ti sia sfuggito
inavvertitamente...
-- 
Salutandovi indistintamente

 Dubito che sia quello che cerca...
si, infatti, ho letto male la sua richiesta


 inavvertitamente... 
Nn voleva essere sarcastico (che poi di solito preferisco l'ironia al
sarcasmo), "_______ e' tuo amico" e' un modo di dire (ed anche piuttosto
diffuso)


 potevi usare << do shell script "cd ~/Desktop; touch pippo.gif" >>
Lo so: era una prova per vedere se funzionava coi comandi su più righe.
-- 
Salutandovi indistintamente

 diffuso)
Lo so, tant'è che lo uso anch'io. Ma non era certo al semplice uso
dell'espressione "è tuo amico" che mi riferivo. Va be', diciamo che ho
interpretato male io...
-- 
Salutandovi indistintamente

 interpretato male io...
Per non capirsi bisogna essere in due...


 dialogo di richiesta di configurazione dei parametri necessari?
Meglio cambiare strategia: una volta creato il bookmark con ncftp dal
Terminale, si può usare lo script messo in quest'altro modo:
property theBookmark : "nome_del_bookmark"
on adding folder items to this_folder after receiving these_items
tell application "Finder"
set thePath to quoted form of POSIX path of (this_folder as alias)
set LocalItems to ""
repeat with theItem in these_items
set LocalItems to LocalItems & " " ¬
& quoted form of (name of theItem as text)
end repeat
do shell script ¬
"cd " & thePath & "; ncftp " & theBookmark & " << EOF
put -R" & LocalItems & "
close
quit
EOF"
end tell
end adding folder items to
on removing folder items from this_folder after losing these_items
tell application "Finder"
set LocalItems to ""
repeat with theItem in these_items
set LocalItems to LocalItems & " " ¬
& quoted form of (name of theItem as text)
end repeat
do shell script "ncftp " & theBookmark & " << EOF
rm -r" & LocalItems & "
close
quit
EOF"
end tell
end removing folder items from
-- 
Salutandovi indistintamente

 2) magari dipende davvero dal server che trova
Lo avevo pensato anch'io, ma non può essere: è un parametro che tu passi
al programma, non il programma al server. Se il programma non lo
supportasse dovrebbe dare un errore.
-- 
Salutandovi indistintamente