<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Phuong Tran (IT)</title>
    <description>The latest articles on DEV Community by Phuong Tran (IT) (@phuongtran).</description>
    <link>https://dev.to/phuongtran</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3951297%2Fa149694a-ef07-4db1-840e-d8277515aeea.jpg</url>
      <title>DEV Community: Phuong Tran (IT)</title>
      <link>https://dev.to/phuongtran</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/phuongtran"/>
    <language>en</language>
    <item>
      <title>Find Remove duplicated files in Google Drive</title>
      <dc:creator>Phuong Tran (IT)</dc:creator>
      <pubDate>Mon, 25 May 2026 19:31:28 +0000</pubDate>
      <link>https://dev.to/phuongtran/find-remove-duplicated-files-in-google-drive-4kk1</link>
      <guid>https://dev.to/phuongtran/find-remove-duplicated-files-in-google-drive-4kk1</guid>
      <description>&lt;p&gt;Để tìm và xóa các file trùng lặp trong thư mục Google Drive trên máy tính, bạn &lt;strong&gt;không nhất thiết&lt;/strong&gt; phải cài đặt các ứng dụng phần mềm của bên thứ ba vào máy. Thay vào đó, bạn hoàn toàn có thể sử dụng các đoạn script (mã lệnh) chạy trực tiếp trên nền tảng đám mây của Google hoặc sử dụng Command Prompt/Terminal kết hợp với các công cụ mã nguồn mở.&lt;/p&gt;

&lt;p&gt;Dưới đây là 3 cách phổ biến từ việc không cần cài gì cho đến dùng script/command line:&lt;/p&gt;




&lt;h3&gt;
  
  
  Cách 1: Sử dụng Google Apps Script (Không cần cài phần mềm, chạy trực tiếp trên trình duyệt)
&lt;/h3&gt;

&lt;p&gt;Google cung cấp một môi trường lập trình trực tuyến gọi là &lt;strong&gt;Google Apps Script&lt;/strong&gt;. Bạn có thể viết một đoạn mã ngắn để tự động quét toàn bộ Drive của mình, tìm các file trùng tên (hoặc trùng dung lượng) và đưa chúng vào danh sách để xóa hoặc tự động chuyển vào Thùng rác.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cách thực hiện:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Truy cập vào trang &lt;a href="https://script.google.com/" rel="noopener noreferrer"&gt;script.google.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Nhấn vào &lt;strong&gt;Dự án mới (New Project)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Xóa hết mã mặc định và dán đoạn mã script (JavaScript) sau vào để tìm các file trùng tên trong một thư mục cụ thể (hoặc toàn bộ Drive):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;findAndTrashDuplicates&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Thay 'ID_THU_MUC_CUA_BAN' bằng ID thư mục trên link Google Drive của bạn&lt;/span&gt;
  &lt;span class="c1"&gt;// Ví dụ: https://drive.google.com/drive/folders/1A2B3C... -&amp;gt; ID là 1A2B3C...&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;folderId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ID_THU_MUC_CUA_BAN&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;folder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;DriveApp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getFolderById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;folderId&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;folder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getFiles&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fileMap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;

  &lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;files&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hasNext&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;files&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;next&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getName&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fileMap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hasOwnProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;fileMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;fileMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;fileMap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fileMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="c1"&gt;// Sắp xếp để giữ lại file mới nhất hoặc cũ nhất tùy bạn&lt;/span&gt;
      &lt;span class="c1"&gt;// Ở đây ta giữ lại file đầu tiên tìm thấy, đưa các file trùng lặp còn lại vào Thùng rác&lt;/span&gt;
      &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;fileMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;Logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Đang xóa file trùng lập: &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;fileMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;setTrashed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Di chuyển vào Trash&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nx"&gt;Logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hoàn thành quét file trùng!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9tkw461wfpvcch2t7vuy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9tkw461wfpvcch2t7vuy.png" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Nhấn nút &lt;strong&gt;Lưu (Save)&lt;/strong&gt; (biểu tượng đĩa ảo) và nhấn &lt;strong&gt;Chạy (Run)&lt;/strong&gt;. Hệ thống sẽ yêu cầu bạn cấp quyền truy cập vào Drive của chính bạn để quét file.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Cách 2: Sử dụng Command Prompt / Terminal với công cụ &lt;code&gt;Rclone&lt;/code&gt; (Dành cho người thích dùng dòng lệnh)
&lt;/h3&gt;

&lt;p&gt;Nếu bạn đã cài đặt công cụ &lt;strong&gt;Google Drive cho máy tính (Google Drive for Desktop)&lt;/strong&gt;, các file của bạn sẽ xuất hiện như một ổ đĩa ảo (ví dụ ổ &lt;code&gt;G:\&lt;/code&gt;). Tuy nhiên, việc quét file trùng trực tiếp bằng Command Prompt của Windows rất phức tạp và dễ nhầm lẫn.&lt;/p&gt;

&lt;p&gt;Thay vào đó, dân công nghệ thường sử dụng một công cụ dòng lệnh mã nguồn mở cực mạnh tên là &lt;strong&gt;Rclone&lt;/strong&gt; (không cần cài đặt cài cắm phức tạp, chỉ cần tải file &lt;code&gt;.exe&lt;/code&gt; về chạy). &lt;code&gt;Rclone&lt;/code&gt; có khả năng tương tác trực tiếp với API của Google Drive để tìm file trùng dựa trên &lt;strong&gt;mã băm MD5&lt;/strong&gt; (tức là trùng chính xác 100% nội dung, bất kể tên file có giống nhau hay không).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cách thực hiện bằng Command Line:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tải Rclone về máy tính và cấu hình kết nối tới tài khoản Google Drive của bạn (qua lệnh &lt;code&gt;rclone config&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Mở &lt;strong&gt;Command Prompt (cmd)&lt;/strong&gt; và chạy lệnh sau để tìm các file trùng lặp:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rclone dedupe google_drive:Thư_mục_của_bạn

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Rclone sẽ quét và đưa ra các tùy chọn cho bạn trên Command Prompt:&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;interactive&lt;/code&gt;: Hỏi bạn muốn giữ file nào cho từng trường hợp.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;first&lt;/code&gt;: Tự động giữ lại file đầu tiên tìm thấy và xóa các file sau.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;newest&lt;/code&gt;: Giữ lại file có thời gian chỉnh sửa mới nhất.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;oldest&lt;/code&gt;: Giữ lại file cũ nhất.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Cách 3: Sử dụng các Add-on/Ứng dụng chính thức trên Google Workspace Marketplace
&lt;/h3&gt;

&lt;p&gt;Nếu việc chạy code hay gõ dòng lệnh quá phức tạp, bạn có thể sử dụng các tiện ích mở rộng được Google kiểm duyệt tích hợp thẳng vào tài khoản của bạn (không cần tải phần mềm về máy tính Windows/Mac).&lt;/p&gt;

&lt;p&gt;Một trong những công cụ phổ biến và an toàn nhất là &lt;strong&gt;Filerev&lt;/strong&gt; hoặc &lt;strong&gt;Organizer &amp;amp; Duplicate Remover for Google Drive™&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bạn chỉ cần vào &lt;strong&gt;Google Workspace Marketplace&lt;/strong&gt;, tìm tên các công cụ này rồi chọn cài đặt.&lt;/li&gt;
&lt;li&gt;Các công cụ này chạy trực tiếp trên đám mây, tự động quét và phân loại các file trùng lặp chính xác 100% dựa trên byte dữ liệu, sau đó hiển thị danh sách cho bạn tick chọn xóa hàng loạt rất trực quan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tóm lại:&lt;/strong&gt; Bạn &lt;strong&gt;không cần tải phần mềm bên thứ ba cài vào máy tính&lt;/strong&gt;. Nếu bạn biết một chút về code, hãy dùng &lt;strong&gt;Cách 1 (Google Apps Script)&lt;/strong&gt; để xử lý nhanh và hoàn toàn miễn phí; nếu muốn quét chuẩn xác bằng dòng lệnh theo nội dung file, hãy dùng &lt;strong&gt;Cách 2 (Rclone)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Để hiểu chi tiết hơn về cách thức hoạt động của các công cụ quét dọn tài khoản Drive tự động trên đám mây mà không cần cài phần mềm máy tính, bạn có thể tham khảo video hướng dẫn này.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=T1BojtZBYzA" rel="noopener noreferrer"&gt;Hướng dẫn tìm và xóa file trùng lặp trên Google Drive&lt;/a&gt;&lt;br&gt;
Video này sẽ chỉ cho bạn từng bước cách sử dụng các công cụ dọn dẹp an toàn kết nối trực tiếp qua API của Google để quét và lọc bỏ các file trùng tên hoặc trùng nội dung một cách nhanh chóng.&lt;/p&gt;

</description>
      <category>drive</category>
      <category>script</category>
      <category>dubplicated</category>
      <category>remove</category>
    </item>
  </channel>
</rss>
