<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Aldolat.it &#8212; Post con tag Directory</title>
        <link>https://www.aldolat.it/tags/directory/</link>
        <description>Ultimi post pubblicati nel tag Directory &#8212; aldolat.it</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>it</language>
        <managingEditor>aldolat@gmail.com (Aldo Latino)</managingEditor>
        <webMaster>aldolat@gmail.com (Aldo Latino)</webMaster>
        <copyright>Creative Commons BY-SA 4.0</copyright>
        <lastBuildDate>Fri, 18 Apr 2025 23:25:50 +0200</lastBuildDate>
        <atom:link href="https://www.aldolat.it/tags/directory/index.xml" rel="self" type="application/rss+xml" />
        <item>
            <title>Monitorare i cambiamenti in una directory in Linux</title>
            <link>https://www.aldolat.it/posts/2025/monitorare-cambiamenti-directory-linux/</link>
            <pubDate>Sat, 15 Mar 2025 07:54:00 +0100</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2025/monitorare-cambiamenti-directory-linux/</guid>
            <description>Recentemente mi è capitato di dover tenere sotto controllo le modifiche fatte in una directory nella mia home. Per questo scopo mi sono servito di inotifywait presente nel pacchetto inotify-tools. Questo programma restituisce proprio le informazioni che mi servivano, ad esempio:&#xA;/path/to/dir/.git/objects/info/ CREATE commit-graph.lock /path/to/dir/.git/objects/info/ MODIFY commit-graph.lock /path/to/dir/.git/ DELETE gc.pid /path/to/dir/.git/ CREATE index.lock /path/to/dir/.git/ DELETE index.lock /path/to/dir/.git/refs/remotes/origin/ CREATE master.lock /path/to/dir/.git/refs/remotes/origin/ MODIFY master.lock /path/to/dir/.git/logs/refs/remotes/origin/ MODIFY master La directory sotto controllo era /path/to/dir/, comprese le sue sotto directory, e &amp;mdash; com&amp;rsquo;è evidente &amp;mdash; su ogni riga il programma mostra in sequenza:</description>
            <content:encoded>&lt;p class=&#34;dc&#34;&gt;R&lt;span class=&#34;allsc&#34;&gt;ecentemente&lt;/span&gt; mi è capitato di dover tenere sotto&#xA;controllo le modifiche fatte in una directory nella mia home. Per questo scopo&#xA;mi sono servito di &lt;code&gt;inotifywait&lt;/code&gt; presente nel pacchetto &lt;code&gt;inotify-tools&lt;/code&gt;. Questo&#xA;programma restituisce proprio le informazioni che mi servivano, ad esempio:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/objects/info/ CREATE commit-graph.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/objects/info/ MODIFY commit-graph.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/ DELETE gc.pid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/ CREATE index.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/ DELETE index.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/refs/remotes/origin/ CREATE master.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/refs/remotes/origin/ MODIFY master.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/logs/refs/remotes/origin/ MODIFY master&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La directory sotto controllo era &lt;code&gt;/path/to/dir/&lt;/code&gt;, comprese le sue sotto&#xA;directory, e &amp;mdash; com&amp;rsquo;è evidente &amp;mdash; su ogni riga il programma mostra in&#xA;sequenza:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;la directory dov&amp;rsquo;è avvenuta la modifica;&lt;/li&gt;&#xA;&lt;li&gt;l&amp;rsquo;azione eseguita;&lt;/li&gt;&#xA;&lt;li&gt;il file interessato.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;installazione&#34;&gt;Installazione&lt;/h2&gt;&#xA;&lt;p&gt;Installiamo anzitutto il pacchetto &lt;code&gt;inotify-tools&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -Syu inotify-tools&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;esecuzione&#34;&gt;Esecuzione&lt;/h2&gt;&#xA;&lt;p&gt;Eseguiamo &lt;code&gt;inotifywait&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;inotifywait -m -r -e modify,create,delete /percorso/alla/directory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le opzioni fornite significano:&lt;/p&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;-m&lt;/code&gt; (o anche &lt;code&gt;--monitor&lt;/code&gt;)&lt;/dt&gt;&#xA;&lt;dd&gt;Rimane in ascolto delle modifiche;&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;-r&lt;/code&gt; (o anche &lt;code&gt;--recursive&lt;/code&gt;)&lt;/dt&gt;&#xA;&lt;dd&gt;Controlla anche le sotto directory;&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;-e&lt;/code&gt; (o anche &lt;code&gt;--event&lt;/code&gt;)&lt;/dt&gt;&#xA;&lt;dd&gt;Controlla quali eventi deve monitorare. Se non specificato, controlla tutti&#xA;gli eventi.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;Nel manuale di &lt;code&gt;inotifywait&lt;/code&gt; possiamo vedere quali siano gli eventi disponibili&#xA;per il monitoraggio:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Evento&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Descrizione&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;access&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory contents were read&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;attrib&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory attributes changed&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;close&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory closed, regardless of read/write mode&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;close_nowrite&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory closed, after being opened in read-only mode&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;close_write&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory closed, after being opened in writable mode&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;create&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory created within watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;delete&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory deleted within watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;delete_self&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory was deleted&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;modify&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory contents were written&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;move&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory moved to or from watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;moved_from&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory moved from watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;moved_to&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory moved to watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;move_self&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;A watched file or directory was moved.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;open&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory opened&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;unmount&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file system containing file or directory unmounted&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p class=&#34;table-caption&#34;&gt;&lt;span class=&#34;sc&#34;&gt;Tabella 1&lt;/span&gt;. Gli eventi disponibili in &lt;code&gt;inotifywait&lt;/code&gt; per il monitoraggio.&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2025/monitorare-cambiamenti-directory-linux/&#34;&gt;Monitorare i cambiamenti in una directory in Linux&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
        <item>
            <title>Cambiare i permessi a file e directory ricorsivamente</title>
            <link>https://www.aldolat.it/posts/2009/cambiare-i-permessi-a-file-e-directory-ricorsivamente/</link>
            <pubDate>Sun, 21 Jun 2009 09:40:30 +0000</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2009/cambiare-i-permessi-a-file-e-directory-ricorsivamente/</guid>
            <description>Con l&amp;rsquo;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&amp;rsquo;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&amp;hellip;) per cui mi sono cercato il modo per farlo da terminale.</description>
            <content:encoded>&lt;figure class=&#34;aligncenter&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2009/06/archivist.jpg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Con &lt;a href=&#34;https://www.aldolat.it/posts/2009/gparted-rocks-co-starring-dire-straits/&#34;&gt;l&amp;rsquo;operazione effettuata ieri&lt;/a&gt;, ho guadagnato un sacco di spazio dove poter mettere una serie complessa (ma rigorosamente ordinata) di directory e file. Questa serie l&amp;rsquo;ho prelevata da un vecchio backup su un disco fisso esterno e tutti i permessi erano in &lt;code&gt;777&lt;/code&gt;. Di ripristinare da GUI i permessi corretti non se ne parlava proprio (sono diventato molto pigro, ultimamente&amp;hellip;) per cui mi sono cercato il modo per farlo da terminale.&lt;/p&gt;&#xA;&lt;p&gt;I permessi dovevano essere &lt;code&gt;755&lt;/code&gt; per le directory e &lt;code&gt;644&lt;/code&gt; per i file. Il comando&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod &lt;span class=&#34;m&#34;&gt;755&lt;/span&gt; -R *&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;non fa distinzione tra file e directory e cambia indistintamente i permessi a ogni cosa; neanche la sintassi&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod &lt;span class=&#34;m&#34;&gt;644&lt;/span&gt; -R *.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ci aiuta perché si ferma solo alla directory dove viene eseguito. Probabilmente con una pipe si potrebbe fare, ma non ho approfondito.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Il comando che mi ha aiutato in una frazione di secondo è &lt;code&gt;find&lt;/code&gt; (da GUI avrei impiegato qualche ora). Nelle pagine di manuale addirittura è riportato espressamente il comando che serve in questo caso:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;find . -type f -exec file &lt;span class=&#34;s1&#34;&gt;&amp;#39;{}&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;che nel mio caso diventa&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;find . -type f -exec chmod &lt;span class=&#34;m&#34;&gt;644&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;{}&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vediamo di capire cosa stiamo dicendo al sistema:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;trovami (&lt;code&gt;find&lt;/code&gt;) in questa directory (&lt;code&gt;.&lt;/code&gt;)&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; tutti gli oggetti di tipo file (&lt;code&gt;-type f&lt;/code&gt;) quindi esegui il comando (&lt;code&gt;-exec&lt;/code&gt;) &lt;code&gt;chmod 644&lt;/code&gt; a ciò che hai trovato (&lt;code&gt;&#39;{}&#39; &#39;;&#39;&lt;/code&gt;)&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Per le directory il comando cambia in questo modo:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;find . -type d -exec chmod &lt;span class=&#34;m&#34;&gt;755&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;{}&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Io rimango sempre meravigliato della potenza del terminale, non so voi&amp;hellip;&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;Magari Shaytan di &lt;a href=&#34;http://www.linuxedintorni.org/&#34;&gt;Linux e dintorni&lt;/a&gt; ci saprebbe dire di più.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;E &lt;code&gt;find&lt;/code&gt; va anche nelle sottodirectory.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;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 (&lt;code&gt;chmod&lt;/code&gt;). Si potrebbe usare al posto delle virgolette anche il backslash, per cui il comando verrebbe:&lt;br&gt;&#xA;&lt;code&gt;find . -type f -exec chmod 644 \{\} \;&lt;/code&gt;&lt;br&gt;&#xA;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:&lt;br&gt;&#xA;&amp;mdash; fazen suggerisce: &lt;code&gt;find . -type f -print0 | xargs -0 chmod 644 find . -type d -print0 | xargs -0 chmod 755&lt;/code&gt;&lt;br&gt;&#xA;&amp;mdash; CDF suggerisce: &lt;code&gt;chmod -R u=rw,go=r,+X .&lt;/code&gt;&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2009/cambiare-i-permessi-a-file-e-directory-ricorsivamente/&#34;&gt;Cambiare i permessi a file e directory ricorsivamente&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
    </channel>
</rss>
