<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ファイル管理 on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E7%AE%A1%E7%90%86/</link>
        <description>Recent content in ファイル管理 on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sat, 16 May 2026 17:40:14 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E7%AE%A1%E7%90%86/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>ChatGPT File Libraryとは：ファイル保存、容量制限、プライバシー境界</title>
        <link>https://knightli.com/ja/2026/05/16/chatgpt-file-library-storage-limits-privacy/</link>
        <pubDate>Sat, 16 May 2026 17:40:14 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/16/chatgpt-file-library-storage-limits-privacy/</guid>
        <description>&lt;p&gt;&lt;code&gt;ChatGPT File Library&lt;/code&gt;は、ChatGPT内のファイルライブラリです。&lt;/p&gt;
&lt;p&gt;以前は、会話にアップロードしたファイルはそのチャットで使う一時的な資料に近いものでした。File Libraryでは、アップロードしたファイルやChatGPTが作成したファイルをアカウントに保存し、後から探す、ダウンロードする、削除する、新しい会話で再利用するといったことができます。&lt;/p&gt;
&lt;p&gt;これにより、ChatGPTは一時的なチャット画面ではなく、継続的な資料ワークスペースに近づきます。&lt;/p&gt;
&lt;h2 id=&#34;最新の提供範囲&#34;&gt;最新の提供範囲
&lt;/h2&gt;&lt;p&gt;OpenAIの2026年5月14日のChatGPT Release Notesによると、File LibraryはFreeとGoユーザーにも拡大され、欧州経済領域のユーザーも対象に含まれます。同時に、プラン横断のストレージ管理も追加されました。&lt;/p&gt;
&lt;p&gt;一方、専用のFile storage and Libraryヘルプページには、確認時点で古い提供範囲が残っていました。このため本文では、より新しい2026年5月14日のRelease Notesを基準にします。ただし、実際に表示されるかどうかはロールアウト、地域、アプリのバージョンに依存します。&lt;/p&gt;
&lt;h2 id=&#34;保存されるファイル&#34;&gt;保存されるファイル
&lt;/h2&gt;&lt;p&gt;ChatGPTは、アップロードまたは作成した次のようなファイルを保存できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文書&lt;/li&gt;
&lt;li&gt;スプレッドシート&lt;/li&gt;
&lt;li&gt;プレゼンテーション&lt;/li&gt;
&lt;li&gt;PDF&lt;/li&gt;
&lt;li&gt;画像&lt;/li&gt;
&lt;li&gt;ChatGPTが生成したファイル&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;生成画像は引き続きImagesタブにも表示されます。File Libraryは、アップロードファイルと生成ファイルをまとめて管理する場所です。&lt;/p&gt;
&lt;p&gt;PDF分析、表計算、文書作成、プレゼン資料の編集をよく行うなら、同じファイルを何度もアップロードする手間を減らせます。&lt;/p&gt;
&lt;h2 id=&#34;新しい会話で使う方法&#34;&gt;新しい会話で使う方法
&lt;/h2&gt;&lt;p&gt;対応クライアントでは、入力欄付近の添付または追加メニューから&lt;code&gt;Add from library&lt;/code&gt;を選び、再利用したいファイルを選択します。&lt;/p&gt;
&lt;p&gt;Release Notesでは、LibraryとRecent filesがWeb、iOS、Androidで利用できることも説明されています。&lt;/p&gt;
&lt;h2 id=&#34;検索と管理&#34;&gt;検索と管理
&lt;/h2&gt;&lt;p&gt;Web版では左サイドバーからLibraryに入り、アップロード済みファイルと生成済みファイルを管理できます。&lt;/p&gt;
&lt;p&gt;ファイルは種類や由来で絞り込めます。ヘルプページでは、アップロードファイル、生成ファイル、画像、文書、スプレッドシート、プレゼンテーション、PDFなどのフィルターが挙げられています。&lt;/p&gt;
&lt;p&gt;ストレージ使用量は&lt;code&gt;Settings &amp;gt; Storage&lt;/code&gt;から確認できます。ファイルはLibraryから直接削除できます。&lt;/p&gt;
&lt;h2 id=&#34;プラン別容量&#34;&gt;プラン別容量
&lt;/h2&gt;&lt;p&gt;2026年5月14日のRelease Notesでは、容量は次のように示されています。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;プラン&lt;/th&gt;
          &lt;th&gt;File Library容量&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Free&lt;/td&gt;
          &lt;td&gt;500 MB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Go&lt;/td&gt;
          &lt;td&gt;4 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Plus&lt;/td&gt;
          &lt;td&gt;20 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Business&lt;/td&gt;
          &lt;td&gt;20 GB&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Pro&lt;/td&gt;
          &lt;td&gt;100 GB&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この容量には、アップロードしたファイルとChatGPTが作成した文書、表、プレゼン、画像が含まれます。&lt;/p&gt;
&lt;h2 id=&#34;単一ファイルの制限&#34;&gt;単一ファイルの制限
&lt;/h2&gt;&lt;p&gt;OpenAIのヘルプページでは、次の制限が示されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPTまたはChatGPT会話にアップロードするファイルは最大512 MB&lt;/li&gt;
&lt;li&gt;テキスト・文書ファイルは最大200万token&lt;/li&gt;
&lt;li&gt;CSVやスプレッドシートは通常約50 MB、行の大きさに依存&lt;/li&gt;
&lt;li&gt;画像は1枚最大20 MB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これはアカウント全体の容量とは別の制限です。&lt;/p&gt;
&lt;h2 id=&#34;削除とダウンロード&#34;&gt;削除とダウンロード
&lt;/h2&gt;&lt;p&gt;ファイルは手動で削除するまでアカウントに保存されます。&lt;/p&gt;
&lt;p&gt;Libraryでファイルを選択し、削除またはゴミ箱アイコンを使います。OpenAIの説明では、削除後はアカウントからすぐに取り除かれ、通常30日以内にOpenAIのシステムから完全削除される予定です。ただし、匿名化済みでアカウントと切り離されている場合や、安全・法的義務で保持が必要な場合は例外があります。&lt;/p&gt;
&lt;p&gt;ファイルはLibraryからダウンロードすることもできます。&lt;/p&gt;
&lt;h2 id=&#34;temporary-chatでは保存されない&#34;&gt;Temporary Chatでは保存されない
&lt;/h2&gt;&lt;p&gt;Temporary Chatでアップロードしたファイルは、アカウントやLibraryに保存されません。&lt;/p&gt;
&lt;p&gt;File Libraryは長期再利用のための機能で、Temporary Chatは一時的・機密性の高い・長期文脈を残したくない作業に向いています。&lt;/p&gt;
&lt;h2 id=&#34;データとトレーニング設定&#34;&gt;データとトレーニング設定
&lt;/h2&gt;&lt;p&gt;OpenAIのヘルプページでは、ファイルとチャットはユーザーの設定とData Controlsに従うと説明されています。&lt;/p&gt;
&lt;p&gt;Memoryが有効な場合、ファイルやチャットが会話間で役立つ情報の記憶に使われる可能性があります。個人向けサービスで&lt;code&gt;Improve the model for everyone&lt;/code&gt;が有効な場合、アップロードファイルを含むChatGPTへの送信内容がモデル改善に使われる可能性があります。この設定は&lt;code&gt;Settings &amp;gt; Data Controls&lt;/code&gt;でオフにできます。&lt;/p&gt;
&lt;p&gt;File Libraryはローカルフォルダーではなく、クラウドアカウント機能です。アップロードしてよい資料かどうかを先に考える必要があります。&lt;/p&gt;
&lt;h2 id=&#34;向いている使い方&#34;&gt;向いている使い方
&lt;/h2&gt;&lt;p&gt;同じPDFやレポートの継続分析、授業資料や会議資料の再利用、ChatGPTが生成した文書や表の再編集、複数会話での素材共有に向いています。&lt;/p&gt;
&lt;p&gt;一方で、身分証明、契約書、医療記録、財務明細などの機密資料、正式なクラウドバックアップ、社内文書の無確認アップロードには向きません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;ChatGPT File Libraryの価値は、単にファイル一覧が増えたことではありません。ChatGPTを一回限りの会話ツールから、資料が蓄積するワークスペースへ変える点にあります。&lt;/p&gt;
&lt;p&gt;その分、古いファイルの整理、容量確認、通常チャットとTemporary Chatの使い分け、Data Controlsの確認が重要になります。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/20001052-file-storage-and-library-in-chatgpt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center：File storage and Library in ChatGPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://help.openai.com/en/articles/6825453-chatgpt-release-notes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenAI Help Center：ChatGPT Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>fdupesで削除順を制御する方法：ディレクトリ優先度で重複ファイルを残す</title>
        <link>https://knightli.com/ja/2026/05/06/fdupes-delete-duplicates-by-directory-priority/</link>
        <pubDate>Wed, 06 May 2026 09:23:09 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/06/fdupes-delete-duplicates-by-directory-priority/</guid>
        <description>&lt;p&gt;&lt;code&gt;fdupes&lt;/code&gt; で重複ファイルを削除するとき、&lt;code&gt;a&lt;/code&gt;、&lt;code&gt;b&lt;/code&gt;、&lt;code&gt;c&lt;/code&gt; の3つのディレクトリがあり、優先的に &lt;code&gt;a&lt;/code&gt; を残し、次に &lt;code&gt;b&lt;/code&gt; を残し、&lt;code&gt;c&lt;/code&gt; の重複ファイルから削除したい場合、重要なのは複雑なルールではない。ディレクトリの入力順だ。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;fdupes&lt;/code&gt; は非対話の削除モードでは、各重複グループで最初に見つかったファイルを残し、後から見つかった重複項目を削除する。そのため、ディレクトリ引数は「保持優先度が高いものから低いものへ」の順に並べる。&lt;/p&gt;
&lt;p&gt;つまり、「先に c を削除し、次に b を削除し、できるだけ a を残す」には、次のように書く。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rdN a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;スキャン順は &lt;code&gt;a -&amp;gt; b -&amp;gt; c&lt;/code&gt; になる。3つのディレクトリに同じファイルが存在する場合、&lt;code&gt;a&lt;/code&gt; のファイルが先に見つかって保持され、&lt;code&gt;b&lt;/code&gt; と &lt;code&gt;c&lt;/code&gt; の重複ファイルが削除される。&lt;code&gt;b&lt;/code&gt; と &lt;code&gt;c&lt;/code&gt; だけに重複がある場合は、&lt;code&gt;b&lt;/code&gt; が保持され、&lt;code&gt;c&lt;/code&gt; が削除される。&lt;/p&gt;
&lt;h2 id=&#34;パラメータの意味&#34;&gt;パラメータの意味
&lt;/h2&gt;&lt;p&gt;よく使うパラメータは次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-r&lt;/code&gt;：サブディレクトリを再帰的にスキャンする。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-d&lt;/code&gt;：重複ファイルを削除する。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-N&lt;/code&gt;：&lt;code&gt;-d&lt;/code&gt; と組み合わせて使い、対話確認を行わず、各重複グループの最初のファイルを残して残りを削除する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのため、重複ファイルを自動削除する基本形式は次のようになる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rdN 目录A 目录B 目录C
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ディレクトリが前にあるほど保持優先度が高い。後ろにあるほど、重複ファイルが削除されやすくなる。&lt;/p&gt;
&lt;h2 id=&#34;削除前にプレビューする&#34;&gt;削除前にプレビューする
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;-dN&lt;/code&gt; を直接使うとファイルが削除されるため、まず重複ファイルのグループを確認するのがよい。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -r a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;出力は重複ファイルごとにグループ化される。各グループで前に表示されるファイルが、非対話削除時に保持されやすいファイルだ。&lt;/p&gt;
&lt;p&gt;統計情報を見ることもできる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rm a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;データが重要な場合は、結果を保存して手動で確認する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -r a b c &amp;gt; duplicates.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;各重複グループの並び順が期待通りであることを確認してから、次を実行する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rdN a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;サブディレクトリの扱い&#34;&gt;サブディレクトリの扱い
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;-r&lt;/code&gt; を有効にすると、&lt;code&gt;fdupes&lt;/code&gt; は渡されたディレクトリ配下のすべてのファイルを再帰的にスキャンする。保持優先度を決めるのは、やはりコマンド内でパスが登場する順序だ。&lt;/p&gt;
&lt;p&gt;例えば次のように実行する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rdN dir_a dir_b dir_c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは次の意味になる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dir_a&lt;/code&gt; の優先度が最も高い。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dir_b&lt;/code&gt; がその次。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dir_c&lt;/code&gt; が最も低い。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;dir_a/sub1/file.txt&lt;/code&gt; と &lt;code&gt;dir_c/sub1/file.txt&lt;/code&gt; の内容が同じなら、&lt;code&gt;dir_a&lt;/code&gt; 配下のファイルが保持される。&lt;code&gt;dir_a/x/y/file.txt&lt;/code&gt; と &lt;code&gt;dir_c/file.txt&lt;/code&gt; の内容が同じ場合も、&lt;code&gt;dir_a&lt;/code&gt; 配下のファイルが優先される。&lt;code&gt;fdupes&lt;/code&gt; が比較するのはファイル内容であり、ファイル名やディレクトリ階層が完全に一致する必要はない。&lt;/p&gt;
&lt;h2 id=&#34;サブディレクトリの優先度を細かく制御する&#34;&gt;サブディレクトリの優先度を細かく制御する
&lt;/h2&gt;&lt;p&gt;親ディレクトリだけを渡す場合、サブディレクトリ内部のスキャン順は &lt;code&gt;fdupes&lt;/code&gt; の走査ロジックに従う。多くの場合はこれで十分だ。ただし、特定のサブディレクトリにより高い優先度を与えたい場合は、そのサブディレクトリを明示的に前へ書く。&lt;/p&gt;
&lt;p&gt;例えば、まず &lt;code&gt;dir_a&lt;/code&gt; を残し、次に &lt;code&gt;dir_b/special&lt;/code&gt; を残し、その後 &lt;code&gt;dir_b&lt;/code&gt; の残りを処理し、最後に &lt;code&gt;dir_c&lt;/code&gt; を処理したい場合は次のようにする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rdN dir_a dir_b/special dir_b dir_c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これにより、&lt;code&gt;dir_b/special&lt;/code&gt; は &lt;code&gt;dir_b&lt;/code&gt; より先にスキャンされる。その後 &lt;code&gt;dir_b&lt;/code&gt; がスキャンされる時点では、&lt;code&gt;special&lt;/code&gt; 内のファイルはすでに記録されているため、&lt;code&gt;dir_b&lt;/code&gt; の他の部分より高い優先度を持つ。&lt;/p&gt;
&lt;p&gt;この書き方は次のような需要に向いている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;a&lt;/code&gt; が最も重要な基準ディレクトリ。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b&lt;/code&gt; の中の特定サブディレクトリが、&lt;code&gt;b&lt;/code&gt; の他の内容より重要。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;c&lt;/code&gt; は主に低優先度のバックアップディレクトリ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;パス順はさらに拡張できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rdN a b/important b c/keep-first c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ルールは変わらない。前にあるほど優先的に保持される。&lt;/p&gt;
&lt;h2 id=&#34;ディレクトリが多い場合はリストを使う&#34;&gt;ディレクトリが多い場合はリストを使う
&lt;/h2&gt;&lt;p&gt;ディレクトリやサブディレクトリが多い場合、長いコマンドを手で書くと間違えやすい。優先度順にパスを &lt;code&gt;folders.txt&lt;/code&gt; のようなテキストファイルへ書いておくとよい。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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_a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_b/sub_important
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_b
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_c/sub_1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;その後、&lt;code&gt;xargs&lt;/code&gt; で &lt;code&gt;fdupes&lt;/code&gt; に渡す。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;cat folders.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs fdupes -rdN
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;パスに空白が含まれる可能性がある場合は、NULL文字区切りを使うほうが安全だ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;tr &lt;span class=&#34;s1&#34;&gt;&amp;#39;\n&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;\0&amp;#39;&lt;/span&gt; &amp;lt; folders.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs -0 fdupes -rdN
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;注意すべき境界&#34;&gt;注意すべき境界
&lt;/h2&gt;&lt;p&gt;第一に、&lt;code&gt;fdupes&lt;/code&gt; が比較するのはファイル内容であり、ファイル名ではない。ファイル名が完全に違っていても、内容が同じなら重複ファイルとして扱われる。&lt;/p&gt;
&lt;p&gt;第二に、&lt;code&gt;a&lt;/code&gt; ディレクトリ内部に重複ファイルがある場合、&lt;code&gt;fdupes -rdN a b c&lt;/code&gt; によって &lt;code&gt;a&lt;/code&gt; 内部で後から見つかる重複項目も削除される可能性がある。このコマンドが表すのは「全体のスキャン順で最初に出たファイルを残す」ということであり、「a の中のファイルを絶対に削除しない」という意味ではない。&lt;/p&gt;
&lt;p&gt;第三に、デフォルトでは &lt;code&gt;fdupes&lt;/code&gt; はシンボリックリンクをたどらない。シンボリックリンク関連のファイルを処理する必要がある場合は、&lt;code&gt;-s&lt;/code&gt; が必要かどうか、またそれがデータ安全上の期待に合うかを確認する。&lt;/p&gt;
&lt;p&gt;第四に、&lt;code&gt;fdupes&lt;/code&gt; は重複ファイルだけを削除し、空ディレクトリは削除しない。削除後に &lt;code&gt;b&lt;/code&gt; や &lt;code&gt;c&lt;/code&gt; に空フォルダが残った場合は、次を実行できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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 b c -type d -empty -delete
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;より安全な操作習慣&#34;&gt;より安全な操作習慣
&lt;/h2&gt;&lt;p&gt;ディレクトリ内のデータが重要な場合、いきなり &lt;code&gt;-rdN&lt;/code&gt; を実行するのは避けたい。より安全な流れは次の通り。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;まず &lt;code&gt;fdupes -r a b c&lt;/code&gt; を実行して重複グループを見る。&lt;/li&gt;
&lt;li&gt;各グループで先頭にあるファイルが本当に保持したいファイルか確認する。&lt;/li&gt;
&lt;li&gt;その後 &lt;code&gt;fdupes -rdN a b c&lt;/code&gt; を実行して自動削除する。&lt;/li&gt;
&lt;li&gt;削除後、空ディレクトリの整理が必要か確認する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;a&lt;/code&gt; 内のファイルを誤って削除するのが非常に心配な場合は、低優先度ディレクトリだけを小さい範囲で先に整理するか、結果を出力して手動で絞り込むとよい。&lt;code&gt;fdupes&lt;/code&gt; のディレクトリ順は便利だが、権限分離ルールではない。スキャン対象に含まれたパス内の重複ファイルは、削除判断に参加する可能性がある。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;fdupes&lt;/code&gt; で優先度に従って重複ファイルを削除する核心は、「残したいディレクトリ」を前に置き、「優先的に削除したいディレクトリ」を後ろに置くことだ。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;a&lt;/code&gt; を残し、次に &lt;code&gt;b&lt;/code&gt; を残し、&lt;code&gt;c&lt;/code&gt; を優先的に削除するなら次のようにする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rdN a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;特定のサブディレクトリの優先度を高くしたいなら、親ディレクトリより前に単独で書く。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#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;fdupes -rdN a b/important b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;覚えることは一つでよい。&lt;code&gt;fdupes -dN&lt;/code&gt; は先に現れた重複ファイルを残し、後に現れた重複ファイルを削除する。ディレクトリ順こそが保持優先度だ。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
