从Dropbox中的非Mac OS文件系统中删除._文件


0

有了一个空间有限的Macbook,我购买了一个便携式SSD驱动器来保存我的大文件,以及我的Dropbox文件夹。这在很大程度上是有效的,但是我注意到当我迁移到这个便携式ssd上的文件系统时,我现在拥有数千个._文件,基本上是1to1 ._到真正的文件/文件夹。所以,如果我之前有过picture.jpg,我现在另外还有._picture.jpg 0字节文件。

做了一些研究,我发现这与Mac使用非mac日志文件系统并创建这些文件有关,原因是我现在忘记了。

所以我开始按文件夹删除这些文件夹,但这将永远需要。我有大量的网站模板,备份,网站...几千个小小的文件,现在有这些讨厌的._阴影。

所以我必须找到一种方法来删除所有这些文件。我的解决方案在下面列出了答案,我在Dropbox社区页面上提供了该答案。但我想把这个项目放在这里,看看是否有人有更好的方法来完成这项任务。



我只是用 find . -name "._*" -print如果一切看起来都不错,请将其更改为 find . -name "._*" -delete。请注意,对于Dropbox的情况,您应该先停止客户端并删除.dropbox.cache文件夹。
Iskar

Answers:


1

我解决这个问题的方法是首先将我的Dropbox完整拷贝到另一个驱动器上。这可能是一个耗时的过程,至少对我而言,因为我经常咨询客户的网站,备份等,导致成千上万的小文件。随着所有._文件的添加,它增加了一倍。我的文件数量在300,000+范围内。但是,在您进行备份后,我们可以继续。

记住, 此计划假设您只在Mac上使用可移动驱动器 。如果你需要在文件系统之间共享,我怀疑这会起作用。我只是使用Dropbox应用程序本身在其他设备上管理它,而不需要一个包罗万象的文件系统。

  1. 如果Dropbox应用程序正在运行,请将其关闭。
  2. 将您的Dropbox备份到另一个驱动器(可能很耗时),并将包含可怕的._文件。
  3. 为了完整性,请确认您的备份,可能使用文件夹比较实用程序/应用程序。
  4. 将可移动驱动器格式化为mac journaled文件系统。我正在使用三星便携式SSD T3 1TB,格式化为Mac OS Extended(Journaled,Encrypted)的安全分区。
  5. 准备好新卷后,在Finder中打开它。
  6. 将备份复制到Dropbox文件夹
  7. 打开终端。
  8. 将目录更改为新卷的Dropbox文件夹,我的是PSSSD / Dropbox,因此命令为:

    cd /Volumes/PSSSD/Dropbox

  9. 对于我将要进行大规模删除操作感到紧张,我想得到一个“WhatIf”(powershell参考),所以我们只是在不删除的情况下进行查找。我的列表很大,所以我将它转储到一个文件中。下面的第一个命令输出到终端,第二个命令输出到文件。

    find . -name '._*' find . -name '._*' > ~/Desktop/DropBox_filestodelete.txt

  10. 查看列表。我在“.dropbox缓存”文件夹中有很多东西,我不确定是否 应该 删除与否,但如果需要,可以重新启动缓存,我决定继续删除它。
  11. 这是一个命令,它将以._作为文件的开头找到所有内容。请注意,如果您拥有具有相同模式的重要真实文件,它们将被删除,您需要从备份中复制它们以取回它们。 “rm -fv”是删除文件的原因。 -fv的f是删除而不提示( 危险 ),并且-fv的v用于详细,因为我想记录我删除的所有文件以供参考。

    find . -name '._*' -exec rm -fv {} \; >> ~/Desktop/filesdeletedoutput.txt

  12. 此删除命令可能需要一些时间。我实际上用CTRL-C两次拦截了我,但在查看了日志文件之后,发现它仍在工作,我只是住院病人。
  13. 如果您还没有意识到,日志文件应该在您的桌面上。
    现在启动Dropbox应用程序备份。
  14. 如果您使用与之前的Dropbox文件夹相同的格式化卷和文件夹名称,Dropbox可能会启动“同步”和“索引”。

这需要一些时间。我有一个问题是移动我的Dropbox文件夹,它不会让我选择一个已经包含Dropbox文件夹的文件夹,但不知怎的,我可以通过取消其中一个警告/提示并进入Settings /来解决这个问题。 Dropbox的偏好。

你应该最终让Dropbox恢复到标准,没有所有讨厌的._文件。 我再次提醒你使用rm -fv或rm-rf,因为它会在没有警告的情况下删除,我相信绕过垃圾桶或回收站。


0

macOS操作系统包括 dot_clean 命令,它可以解决您问题中描述的问题。 macOS 10.13.3(High Sierra)的手册页如下。

DOT_CLEAN(1)              BSD General Commands Manual             DOT_CLEAN(1)

NAME
     dot_clean -- Merge ._* files with corresponding native files.

SYNOPSIS
     dot_clean [-fmnsv] [--keep=[mostrecent|dotbar|native]] [dir ...]

DESCRIPTION
     For each dir, dot_clean recursively merges all ._* files with their cor-
     responding native files according to the rules specified with the given
     arguments.  By default, if there is an attribute on the native file that
     is also present in the ._ file, the most recent attribute will be used.

     If no operands are given, a usage message is output.  If more than one
     directory is given, directories are merged in the order in which they are
     specified.

OPTIONS
     -f      Flat merge.  Do not recursively merge all directories in the
             given dir.  This is off by default.

     -h      Help. Prints verbose usage message.

     -m      Always delete dot underbar files.

     -n      Delete dot underbar file if there is no matching native file.

     -s      Follow symbolic links.  This will follow symbolic dot underbar
             files when they are found.

     -v      Print verbose output.

     --keep=mostrecent
             The default option.  If an attribute is associated with a data
             fork, use that.  Otherwise, use information stored in the Apple-
             Double file.  Note that the native fork's data is preferred even
             if the data in the AppleDouble file is newer.

     --keep=dotbar
             Always use information stored in the AppleDouble file, replacing
             any extended attributes associated with the native file.

     --keep=native
             Always use the information associated with the data fork, ignor-
             ing any AppleDouble files.

EXAMPLES
     The following is how to do an dot_clean merge on the mounted volume test,
     always using the dot underbar information.

           dot_clean --keep=dotbar /Volumes/test

DIAGNOSTICS
     The dot_clean utility exits 0 on success, and >0 if an error occurs.

BUGS
     None known.

BSD                              Sept 27, 2012                             BSD
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.