yae*_*ael 21 linux filesystems mv
使用mv命令重命名 180GB 的文件夹是否有风险?
我们有一个/data包含 180GB的文件夹。
我们想使用命令将/data文件夹重命名为。/BD_FILESmv
这样做安全吗?
Kus*_*nda 73
如果文件夹位于同一文件系统中,则更改文件夹名称是安全的。
如果是一个挂载点(/data还挺看起来像它可能是一个挂载点给我,看看这个用mount),那么你需要做其他的东西不仅仅是一个简单的mv,因为mv /data /BD_FILES将数据移动到根分区(这可能不是什么你想发生)。
您应该卸载文件系统,重命名现在为空的目录,/etc/fstab使用此文件系统的新位置更新,然后在重命名的位置重新安装文件系统。
换句话说,
umount /datamv /data /BD_FILES(假设/BD_FILES不存在,在这种情况下,首先将其移开)/etc/fstab,将挂载点从 更改/data为/BD_FILESmount /BD_FILES这不涉及复制任何文件,它只是更改充当文件系统挂载点的目录的名称。
如果目录的重命名涉及将它移动到一个新的文件系统(例如,如果/data在一个磁盘上而/BD_FILES在另一个磁盘上,这是一种常见的情况,例如,如果您将内容移动到更大的分区) ,我建议在复制数据的同时保持原件完好无损,直到您可以检查副本是否正常为止。你可以这样做
rsync -a /data/ /BD_FILES/
Run Code Online (Sandbox Code Playgroud)
例如,但请参阅rsync手册了解它的作用和不做什么(例如,它不保留硬链接)。
文件夹重命名后,您还需要确保现有程序(使用文件夹的程序和用户、备份等)知道名称更改。
Ron*_*ohn 17
您不是重命名目录中的每个文件,而是重命名/ 中的一个文件。那是因为:
因此,重命名目录,无论其中有多少文件或多少数据,都是微不足道的。
seb*_*sth 14
如果你只是重命名(源和目标在同一文件系统中),它只是一个目录条目的重命名。它要么成功,目录有新名称,要么失败,在这种情况下没有任何改变*。
如果源和目标位于不同的文件系统上,则数据需要通过mv. 文件系统功能的差异,例如最大文件大小、文件名限制等,可能会导致问题。为避免出现问题,请先复制文件 ( cp, rsync, ...),然后在复制成功完成后,删除原始位置中的文件。
* 但是有一些极端情况,例如在man 2 rename的BUGS部分中提到
正如其他人所说,重命名文件夹不会对内容造成固有风险。但是,您可能需要考虑另一种风险。
引用原始位置的现有过程、脚本、用户定义的快捷方式和配置可能会被此更改破坏,并且如果路径存储在数据库中,例如,更新它们可能是一项艰巨的工作。
您可以做的一件事是为新目录名称创建符号链接,但将旧名称保留一段时间。这将使您有时间评估此更改的影响。您可以暂时删除旧名称,看看是否有任何问题,如果有,只需重新创建旧名称,这样人们就可以在您找出需要更新的内容时继续工作。
像这样的命令应该这样做:
ln -s /data /BD_FILES