[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


287. File, link e directory

287.1 Copia, spostamento e cancellazione file

Come copio, sposto o cancello i file?

<enf>Copiare</enf>: cp origine destinazione. Es.:

 cp /root/dog.gif /home/pino/

 cp -i origine destinazione (chiede conferma prima di sovrascrivere)

<enf>Spostare</enf>: mv origine destinazione. Es.:

 mv /root/dog.gif /home/pino/

<enf>Cancellare</enf>: rm file

 rm -i *.html (chiede conferma per ogni file che deve essere cancellato)

<enf>Cancellare una directory con tutto il suo contenuto</enf>:

 rm -rf directory

Nota. Se nella copia dei file si vogliono copiare i collegamenti simbolici 
e mantenerli come tali si deve utilizzare l'opzione -d. Se questo è 
richiesto durante la copia di directory con sottodirectory, l'opzione 
-r diventerà -R.

287.2 dir *.html /s

Dalla directory radice ("/") ho digitato:

ls -R *.html

ottenendo come risultato un bel niente, invece speravo che il comando equivalesse a quello Dos: [dir *.html /s].

Come faccio a trovare nel mio sistema tutti i file con estensione html?

Con uno dei seguenti comandi:

# find / -name "*.html"

# find / -print | grep -i "html$" > ./all_html.txt

D: Renato Ferrari
R: Riccardo Corsanici, Fabio Rotondo

287.3 Come evitare la cancellazione di un file da parte di root?

Sapete come evitare che un file sia cancellabile da parte dell'utente root?


Non credo che un semplice utente possa evitare la cancellazione dei 
suoi file da parte dell'utente root. Però dipende da cosa intendi fare.
Per esempio, se un file è stato impostato da root con:

chattr +i nome_file

esso non potrà venire rinominato, cancellato, modificato da nessuno, 
utente root compreso, almeno non prima che l'attributo i venga tolto.

D: Giorgio Zarrelli
R: Elisa Manara

287.4 Copia di un'intera porzione del filesystem

Come faccio a copiare una directory (e il suo contenuto) per intero?

Il comando che cerchi è:

cp -av origine (/usr) destinazione (/home/dove_vuoi_tu)

R: Roberto Kaitsas

287.5 Undelete in Linux

Esistono funzioni di undelete in Linux?

Alcune delle tecniche che puoi usare per effettuare il recupero dei file
cancellati su filesystem ext2 sono descritte nel <enf>Linux Ext2fs Undeletion mini-HOWTO</enf>
(http://www.praeclarus.demon.co.uk/tech/e2-undel/)

In questo HOWTO si parla di una caratteristica apposita del Midnight
Commander (mc), che sembra ideale per utenti alle prime armi ma nulla di più. Tieni
presente che la cancellazione, nei filesystem ad inode (quasi tutti quelli Unix,
più HPFS e NTFS) è un provvedimento molto più drastico che non sotto Dos
(che si limita a sostituire il primo carattere del nome del file con "?").
Mc credo che sostituisca il comando 'rm' con un finto 'rm' che sposta il file su
una directory di "cancellati" da cui eventualmente 'unrm' effettua i recuperi. 

D: Paolo Mengon
R: Alfonso De Gregorio, Paolo Furieri, Paolo Marchiori, Michel ZioBudda Morelli

287.6 Visualizzazione della posizione nel filesystem

In che posizione del filesystem mi trovo?

Puoi dare il comando:

pwd

287.7 Visualizzazione del contenuto di un file

Come faccio a visualizzare il contenuto di un file?

Con uno dei seguenti comandi:

cat file

more file (una schermata alla volta)

less file (una schermata alla volta, si può tornare 'indietro' nella 
           visualizzazione del file, per uscire quando si è arrivati
           alla fine, si preme il tasto 'q')

Tutti questi comandi valgono solo per file di testo.

287.8 Visualizzazione parziale di un file

C'è un comando per visualizzare solo una riga di un file?

Se intendi visualizzare la n-sima riga del file pippo fai:

cat pippo |  head -n |  tail -1

D: Amosm
R: Pio Gaeta

287.9 Visualizzazione del contenuto di una directory

In quanti modi posso visualizzare il contenuto di una directory?

Ecco i vari modi:

ls

ls -la (per vedere tutti i file compresi quelli nascosti 
e i relativi permessi);

ls -la |more (per vedere il contenuto della directory una schermata 
alla volta);

ls -la > testo (per creare un file chiamato testo contenente 
l'elenco del contenuto della directory attuale).

Per aggiungere il contenuto di un'altra directory al file:

ls -la >> testo

ls |sort |more (o less)
(visualizza in ordine il contenuto della directory corrente 
una schermata alla volta);

ls --color (per visualizzare con colori uguali,
tipi di file uguali: directory, eseguibili, ecc.)

287.10 ls colorata

Come si ottengono i colori che distinguono i diversi tipi di file quando si esegue il comando ls?

Nel ~/.bash_profile ho messo:

alias ls='ls -lF --color=always'

D: Francesco M. Landolfi
R: Giuliano Grandin

287.11 Come mantenere il colore di ls nell'xterm?

Come mantenere il colore di ls in ambiente grafico xterm? Devo ridare il comando:

alias ls='ls --color'

se voglio avere i colori che ho sulla console testuale.

Utilizza:

xterm -ls

D: Giuseppe
R: Cosimo Vagarini

287.12 ls con percorso relativo

Vorrei che ls * mi visualizzasse tutti i file con il percorso relativo alla directory in cui mi trovo.

Usa:
        find .

R: Giacomo Comes

287.13 Vedere il contenuto di tutti i file di una directory

Vorrei visualizzare il contenuto di tutti i file di una directory. Come si fa?

cat /nome_dir/* | less

o

less /nome_dir/*

R: Federico Di Gregorio

287.14 Vedere il contenuto di uno stesso file presente in diverse directory

Se volessi vedere il contenuto dei file rp_filter contenuti nelle varie directory /proc/sys/net/conf/* con un solo comando, come posso fare?

Eccoti tre metodi:

1) cat `find /proc/sys/net/conf -name rp_filter -print`



2) for i in `find /proc/sys/net/conf -name rp_filter -print` ; \
        do echo $i; \
           cat $i; \
        done

3) find /proc/sys/net/conf -name rp_filter -exec "echo '{}' && cat '{}'" ;


D: Mauro Sanna
R: Lorenzo Lazzeri, Paolo Marchiori

287.15 Less disattiva la colorazione di ls

Qualcuno saprebbe dirmi come fare per vedere le voci colorate col comando in oggetto? Se metto '|more', tutto funziona, ma se uso '|less', che è più pratico, compaiono invece questi codici:

ESC[01;34mat-3.1.7ESC[0m/

ESC[01;34maudiofile-0.1.6ESC[0m/

ESC[01;34maumix-1.18.2ESC[0m/

ESC[01;34mawesfx-0.4.3aESC[0m/

less "protegge" di norma il terminale evitando di mandare sequenze
di caratteri che potrebbero "sporcarlo". Ovviamente questo è sconveniente
a volte, quindi c'è l'opzione -r

Puoi ottenere ciò che dici infatti con il comando:

        ls -alF --color=always |less -r

chiaramente in questi casi si fa un alias.

R: Ezio de Mauro

287.16 Creazione istantanea di un file

Come creo un file all'istante?

touch file (lo crea e basta)

cat > file (lo crea e ci scrive tutto quello che voglio fino a 
quando non premo ctrl+d)

287.17 Unire più file di testo

Esiste un comando che permetta di concatenare più file di testo, fra di loro?

O così:

cat file1.txt > ris.txt
cat file2.txt >> ris.txt
cat file3.txt >> ris.txt

o, più facilmente: 

cat file1.txt file2.txt file3.txt > ris.txt

D: Renato Ferrari
R: The Hitman

287.18 Informazioni sul tipo di file

Come faccio a sapere di che tipo è un file?

Con il comando:

file nome_file

287.19 Ordinamento alfabetico di un file

Se ho un elenco in un file, come faccio a metterlo in ordine alfabetico?

Con il comando:

sort < file.txt > fileinordine.txt

287.20 Creazione ed eliminazione delle directory

Come si crea e come si cancella una directory?

Creare:

mkdir nome

Cancellare:

rmdir nome (la directory deve essere vuota)

rm -rf /prova (elimina la directory prova e tutte le sue eventuali discendenti)
              [Attenzione: è un comando cui bisogna prestare attenzione].

287.21 File non cancellabili - attributi estesi

Qualcuno (leggasi intrusione) ha cambiato un file di sistema con uno modificato; ora lo voglio sostituire con il file corretto, ma non riesco a cancellarlo:

cp: overwrite `/bin/login', overriding mode 4755? y
cp: cannot create regular file `/bin/login': Permission denied
[...]
rm -rf /bin/login
rm: /bin/login: Operation not permitted

Vedi gli attributi estesi:

lsattr

per cambiarli:
chattr

Forse hanno impostato il file come immutabile
(una 'i' negli attributi estesi).

Per la documentazione sui due comandi naturalmente:
man lsattr
man chattr.

R: Massimo Fubini

287.22 Spostamento nelle directory del filesystem

Come mi muovo tra le directory del filesystem?

cd nome (per entrare in una directory figlia di quella attuale)

cd /nome/nome2/ (per entrare nella directory di secondo 
livello 'nome2' figlia di 'nome')

cd .. (per tornare alla directory di livello superiore a quello attuale)

cd ~ (per tornare alla directory home)

cd ../conti (per spostarmi alla directory conti, sorella della 
directory in cui mi trovo)

cd - (per tornare nell'ultima directory in cui sono stato)

287.23 Differenza tra link soft e hard

Qualcuno mi spiega i vari tipi di link e che differenze ci sono?

Un link soft è praticamente un nome diverso che tu dai allo stesso file.
Non occupa spazio su disco (se non per un inode).
Un link hard è praticamente una copia fisica del file con
il più il fatto che ogni cambiamento che fai all'originale (o alla copia) verrà
fatta anche sulla copia (o sull'originale).

Se hai un link soft e cancelli l'originale, il file viene perso; se il link
è hard resterà il link (ed il contenuto viene mantenuto).

D: Fabrizio Trevisani
R: ZioBudda, Emilio Riva

287.24 Creazione di un link simbolico

Come creo un link simbolico?

ln -s /home/mario/resoconto.txt /root/resocontomario

dove /home/mario/resoconto.txt è il file che già esiste, e 
/root/resocontomario è il link.

287.25 Trovare un file in tutto il filesystem

Come posso trovare un file in tutto il mio filesystem?

Con il comando:

find / -name nomefile -print

Oppure, usando locate:

locate nomefile

Locate è più veloce di find, ma per usarlo bisogna 
prima aggiornare il suo archivio (da root) con:

updatedb

287.26 Trovare un file in una porzione del filesystem

Come posso sapere se c'è un determinato file nella directory /var e nelle sue discendenti?

find /var -name nomefile -print

287.27 Cerca, trova e copia

Come faccio a cercare tutti i file di un certo tipo (*.png) e a copiarli in una directory? (/home/pippo/pngfile/)


find / -name "*.png" -exec cp -p {} /home/pippo/pngfile \;

D: Kernelz
R: Paolo Marchiori, Antirez, Alfonso De Gregorio, Nicola Bonelli, Stefano Brandimarte

287.28 Visualizzazione dei file che contengono una stringa

Come posso sapere tutti i file che contengono la stringa "resoconti"?

grep resoconti *

oppure

find nome_percorso -print -exec grep stringa {} \;

il comando restituisce tutti i file trovati nel percorso
più le stringhe trovate.

D: Samuel John Porter
R: Razzauti Marco

287.29 Ricerca di una stringa nei file

Dovrei cercare un certo termine all'interno di alcuni file. Come effettuare la ricerca in tutti i file presenti in tutte le directory?

rgrep -r <altre opzioni> <stringa da cercare> <directory di partenza>

oppure 

find <directory di partenza> -type f -exec grep -l <altre opzioni> {} \;

R: Ezio de Mauro

287.30 Ricerca dei file che iniziano con una determinata stringa

Come trovo tutti i file che iniziano per 'conf'?

find / -name conf\*

R: Davide Alberani

287.31 Spezzare i file di grandi dimensione

Qualche volta ho la necessità di portare sul mio elaboratore di casa che ha Linux dei file di grosse dimensioni che scarico all'università. Fino a questo momento ho utilizzato WinZip per spezzare i file e ricostruirli a casa. Poi, da Linux, montavo la partizione Windows e copiavo i file sul filesystem di Linux. In verità questo è l'unico motivo per cui ho ancora Windows. Considerato che all'università, oltre alle macchine con Windows, ci sono alcune Sun con Solaris, mi sapreste suggerire una procedura per spezzare i file di grosse dimensioni su dischetti per ricostruirli poi a casa sotto Linux?

Usa split:

split -b 1400k nome_file

ti separa nome_file in file di 1400k chiamati di default xaa, xab, ecc.
C'è anche su Sun Solaris.

Una volta copiati nella macchina Linux di casa,  usi:

cat xaa xab ... > nome_file

oppure direttamente:

cat x* > nome_file

In alternativa puoi usare il comando tar con l'opzione M, scrivendo
direttamente su /dev/fd0.

Un inconveniente: il tar scrive direttamente sul disco senza badare al 
filesystem, per riutilizzare il dischetto lo devi riformattare (l'mformat è
ottimo in questo caso)

Es.            tar cvfM /dev/fd0 pippo

Per estrarre ovviamente tar xvfM /dev/fd0

D: Fabrizio Lippolis
R: Piero Baudino, Ezio de Mauro, Vanni della Ricca, Daniele Sapio

---------------------------

LDR --- Copyright © 1999-2000 Gaetano Paolone --  bigpaul @ pluto.linux.it


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]