【发布时间】:2016-04-04 11:21:12
【问题描述】:
我有包含内容的目录(示例)
/dir1/a/b/c/file1
/dir1/a/b/c/file2
/dir1/a/d/file3
/dir1/a/e/file4
/dir1/f/dir3/
/dir1/f/dir4/
... 我有可以删除的文件和目录列表 - 例如 file1、file3 和 dir3
我想将它们移动(移动,而不是复制或 tar - 文件很大,我需要在短时间内完成)将它们移动到另一个目录 /dir2(在同一文件系统上),但是 - 保留子目录:
/dir1/a/b/c/file1 -> /dir2/a/b/c/file1
/dir1/a/d/file3 -> /dir2/a/d/file3
/dir1/f/dir3/ -> /dir2/f/dir3/
有没有比为每个文件和目录(跳过最后一部分的目录)在 dir2 中创建目录(使用 mkdir -p/install -d)然后将其移动到更好的方法?
【问题讨论】:
-
在哪里以及如何列出要移动的文件/目录?
-
mv /dir1/* /dir2/呢?你需要先创建 dir2。 -
我不想从 dir1 移动所有内容 - 只移动不同深度级别的特定目录/文件。
-
最简单的解决方案之一是使用 rsync,在 --include-from 和 --remove-source-files 中包含文件列表。但是 - 它复制文件,然后删除 - 我需要避免复制 - 对于大文件需要太多时间。
-
重命名目录,然后删除不需要的文件?提供,在你的情况下是可能的。
标签: bash shell directory filesystems