Conoscere la data di creazione di un file in GNU/Linux

Questo post non sarebbe mai nato se non fosse stato per Lorenzo, che si è trovato davanti alla necessità di risalire alla data di creazione di un file. E si è accorto che questo dato non è di immediata reperibilità. Vista l’importanza di quel suo post, mi sembra giusto darne ulteriore visibilità.
Continua a leggere

Cambiare i permessi a file e directory ricorsivamente

Con l’operazione effettuata ieri, ho guadagnato un sacco di spazio dove poter mettere una serie complessa (ma rigorosamente ordinata) di directory e file. Questa serie l’ho prelevata da un vecchio backup su un disco fisso esterno e tutti i permessi erano in 777. Di ripristinare da GUI i permessi corretti non se ne parlava proprio (sono diventato molto pigro, ultimamente…) per cui mi sono cercato il modo per farlo da terminale.

I permessi dovevano essere 755 per le directory e 644 per i file. Il comando chmod 755 -R * non fa distinzione tra file e directory e cambia indistintamente i permessi a ogni cosa; neanche la sintassi chmod 644 -R *.txt ci aiuta perché si ferma solo alla directory dove viene eseguito. Probabilmente con una pipe si potrebbe fare, ma non ho approfondito 1.

Il comando che mi ha aiutato in una frazione di secondo è find (da GUI avrei impiegato qualche ora). Nelle pagine di manuale addirittura è riportato espressamente il comando che serve in questo caso:

find . -type f -exec file '{}' ';'

che nel mio caso diventa

find . -type f -exec chmod 644 '{}' ';'

Vediamo di capire cosa stiamo dicendo al sistema:

trovami (find) in questa directory (.) 2 tutti gli oggetti di tipo file (-type f) quindi esegui il comando (-exec) chmod 644 a ciò che hai trovato ('{}' ';') 3.

Per le directory il comando cambia in questo modo:

find . -type d -exec chmod 755 '{}' ';'

Io rimango sempre meravigliato della potenza del terminale, non so voi…

Note

  1. Magari Shaytan di Linux e dintorni ci saprebbe dire di più
  2. E find va anche nelle sottodirectory.
  3. Da notare le virgolette singole che forzano il sistema a non interpretare quei simboli come punteggiatura. Il punto e virgola finale chiude gli argomenti per il comando eseguito (chmod). Si potrebbe usare al posto delle virgolette anche il backslash, per cui il comando verrebbe:
    find . -type f -exec chmod 644 \{\} \;

    Come mi aspettavo, alcuni lettori del blog hanno inviato nei commenti altri metodi per fare la stessa cosa. Li riporto qui e li ringrazio per il prezioso contributo:

    • fazen suggerisce:
      find . -type f -print0 | xargs -0 chmod 644
      find . -type d -print0 | xargs -0 chmod 755
    • CDF suggerisce:
      chmod -R a=rw,go=r,+X .

Gparted rocks (co-starring Dire Straits)

Mentre avevo i Dire Straits a distrarmi durante l’operazione col loro album Love Over Gold, oggi ho ridimensionato le partizioni del mio laptop su cui per cause di forza maggiore devo tenere anche sVista. La mia home cominciava a starmi stretta e dovevo darle un po’ di aria. Confortato dalla mia precedente esperienza, mi sono deciso a fare questa operazione di spostamento e ridimensionamento, ma a una condizione: non m’andava di fare il backup! Sbagliato, lo so, ma confidavo pienamente nella potenza del mio sistema Linux.

Tutta l’operazione è durata un’ora e mezza esatta: ridimensionamento della partizione Documenti di Windows; spostamento della partizione di sistema di Linux e spostamento con ridimensionamento della partizione home. In tutto questo Gparted non ha fatto una grinza e, come scrissi a suo tempo, “si è mostrato solido come la roccia”.

Se avete necessità di rivedere le vostre partizioni, confidate in Gparted: infilate il CD e partite. Previo backup, comunque! :D

Aggiornare i driver Ati proprietari

Ho parlato più volte sull’installazione dei driver Ati in questo blog e basta guardare il tag “Ati” per leggere cosa ho scritto. In poche parole, ho sempre seguito ciò che l’Unofficial Wiki for the ATI Linux Driver pubblica come “Metodo 2“, cioè una installazione manuale e più impegnativa di questi driver.

Da un paio di volte aggiorno i driver semplicemente avviando l’eseguibile scaricato dal sito ufficiale e mi ritrovo coi driver perfettamente funzionanti e senza tanta fatica. Ho cambiato sistema dopo aver letto quanto Divilinux scrive, ad esempio, qua. In sostanza, eseguo questi passaggi:

  • messa in blacklist dei driver (solo la prima volta che ho seguito questo metodo)
  • avvio dell’installer
  • riscrittura del file xorg.conf con sudo aticonfig --initial -f
  • rigenerazione della lista dei moduli e caricamento di fglrx con sudo depmod -aesudo modprobe fglrx
  • riavvio del sistema.

Si tratta veramente di pochissimi passaggi e molto semplici. Più facile di così!

Fatevi un backup del file etc/X11/xorg.conf prima di effettuare l’aggiornamento.

Come sfogliare la cronologia dei comandi da terminale

Tutti certamente sappiamo che per sfogliare gli ultimi comandi da terminale basta premere la freccia in su per ritrovarceli nuovamente pronti per essere lanciati. Ma oltre a questo, possiamo chiedere di più. Infatti, se vogliamo riprendere un comando specifico che abbiamo dato tempo fa, possiamo farlo con estrema facilità. Ad esempio, se un mese fa avevamo dato questo complesso comando:

bzr push bzr+ssh://utente@bazaar.launchpad.net/~utente/progetto/branch

possiamo richiamarlo immediatamente digitando solo

bzr push

e premere PagUp: il terminale vi farà scorrere la lista dei comandi che cominciano per bzr push.

Per compiere questa magia, è sufficiente editare il file /etc/inputrc e modificare una riga:

sudo nano /etc/inputrc

Scorrete in basso fino a trovare il seguente blocco (siamo alle righe 40-42):

# alternate mappings for "page up" and "page down" to search the history
#"\e[5~": history-search-backward
#"\e[6~": history-search-forward

Togliete il commento alle righe 41 e 42 (cioè il carattere #) e salvate con CTRL+O e uscite con CTRL+X.

Chiudete il terminale e riapritelo. Provate ora a digitare una sequenza che avete già fatto, ad esempio:

sudo apt

e premete il tasto PagUp. Scorrerete così solo la cronologia che comincia con sudo apt.

A me risulta estremamente utile e fa risparmiare tempo e meningi. :)
Un piccolo video per vedere in atto le operazioni:

[video type="vimeo" video="http://vimeo.com/moogaloop.swf?clip_id=1565334" width="460" height="376"]

Gestire le partizioni in Ubuntu

Ho già scritto più volte su come gestire i propri dispositivi e le proprie partizioni: basta dare un’occhiata al tag “Hard-disk”. È da tempo, però, che volevo annotarmi qui, secondo lo stile tipico di Ubuntu block notes, tutto ciò tengo nelle mie note personali sul desktop. Una sorta di guida rapida ai comandi da terminale per formattazione, etichettatura, montaggio, informazioni e riparazione delle partizioni dei dischi fissi. Sperando che l’articolo, pur non essendo completo, vi sia utile lo stesso.

Per eseguire alcune di queste operazioni, come la formattazione ad esempio, potete usare Gparted che trovate nei repository ufficiali. Ma non tutte, appunto, possono essere eseguite da interfaccia grafica. Tramite il terminale avete tutte le possibilità di intervento relativamente alle partizioni dei vostri dischi fissi. Annotatevele, magari in un post-it di Tomboy, per averle sempre a portata di mano.
Continua a leggere

Hardy e i freeze di sistema: risolto?

USB
Creative Commons License photo credit: quiroso

Nel tentativo di isolare la causa dei blocchi che subisce la mia adorata Ubuntu box, ho praticamente provato di tutto. L’ultimo tentativo riguardava l’aggiunta di tre opzioni nella riga di avvio del kernel da usare. Fatto sta che neanche questa sembra essere la soluzione al problema.

Infatti, quando ho aggiunto queste opzioni, non avevo notato che poco prima avevo dovuto staccare, per altre esigenze, la parte frontale esterna di un lettore di card multiplo su USB [1]. Per cui, contento di aver raggiunto un risultato, ritenevo che con quelle opzioni il problema fosse risolto. Ma, quando alcuni giorni dopo mi sono accorto che avevo staccato il moltiplicatore, sono rimasto di sale: subito ho pensato che la causa poteva anche essere il settore USB del sistema.

Tolgo, dunque, quelle opzioni dall’avvio del kernel e tengo scollegato il lettore USB di card (solo la parte esterna). Da una settimana circa il sistema, senza quelle opzioni e senza il lettore esterno frontale, è ancora stabile.

Ora, senza fanfare e senza dire di aver trovato un bel niente, è ovvio associare i blocchi alla gestione del sistema USB. Che ci sia un problema in questo?

[1] Si tratta, precisamente, di una scheda Sitecom PCI che fornisce 4 porte USB 2.0 supplementari sul retro del PC. Se lo si vuole, si può collegare internamente, tramite un normale connettore USB fornito in dotazione, un lettore multiplo di memory card e altre 3 porte USB aggiuntive: questa parte la si monta sul lato frontale del PC in un alloggiamento da 5,25″. La parte “incriminata” è proprio questa parte esterna del dispositivo.