我刚刚遇到了这个奇怪的事情:我想做相当于将一个目录拖到另一个目录中(移动它)。 GUI 的繁琐日常任务。
这是我的树:
.
├── assemble.py
├── Basic Information Retrieval.ipynb
├── Basic Information Retrieval.tex
├── Book
│ ├── book.aux
│ ├── book.log
│ ├── Book_master.tex
│ ├── book.out
│ ├── book.pdf
│ ├── book.tex
│ ├── book.toc
│ ├── build.sh
│ ├── chapter_0.tex
│ ├── chapter_1.tex
│ ├── chapter_2.tex
│ ├── chapter_3.tex
│ ├── chapter_4.tex
│ ├── chapter_5.tex
│ ├── Cosine Similarity_files
│ │ ├── Cosine Similarity_17_0.png
│ │ └── Cosine Similarity_22_0.png
│ ├── Language Models_files
│ │ └── Language Models_5_0.png
│ └── nb_preamble.tex
├── convert_to_latex.sh
├── convert_to_pdf.sh
├── corpus_zika
├── Cosine Similarity_files
│ ├── Cosine Similarity_17_0.png
│ └── Cosine Similarity_22_0.png
├── Cosine Similarity.ipynb
├── Cosine Similarity.tex
├── Dicionario_zika.dict
├── Language Models_files
│ └── Language Models_5_0.png
├── Language Models.ipynb
├── Language Models.tex
├── Probabilistic Text Models.ipynb
├── Probabilistic Text Models.tex
├── README.md
├── Topic Modeling.ipynb
└── Topic Modeling.tex
我想进入Cosine Similarity_files
,Book/
最终覆盖它(如果它已经存在)。我发出自然的命令:
mv Cosine\ Similarity_files Book/
我收到消息Directory not empty
WTF!?但如果我要求它更深入一层,情况会更好:
mv Cosine\ Similarity_files Book/Cosine\ Similarity_files
它尽职尽责地做了以前不会做的事情!它将源目录写入目标目录! WTF²!?!
这是为什么?这有什么意义吗?
答案1
当您执行时,mv Cosine\ Similarity_files Book/
没有任何反应,因为目录中存在同名且不为空的目录Book
。
正如 don_crissti 在上面的评论中所述,当您执行时mv Cosine\ Similarity_files Book/Cosine\ Similarity_files
,它Cosine\ Similarity_files
移至Book/Cosine\ Similarity_files/Cosine\ Similarity_files
如果您想覆盖正在移动的目录中的任何现有文件,则必须使用-f
或-i
选项。
-f
--force
Remove existing destination files and never prompt the user.
-i
--interactive
Prompt whether to overwrite each existing destination file,
regardless of its permissions. If the response does not begin
with `y' or `Y', the file is skipped.
例子:mv -f Cosine\ Similarity_files Book/
注意:-f
不会覆盖或合并您尝试移动的目录中的目录。它只会覆盖文件。
如果要合并或覆盖目录,可以使用rsync
和 --remove-source-files
选项。欲了解更多信息,请查看此答案。