僅使用 mv 將目錄移至另一個目錄中

僅使用 mv 將目錄移至另一個目錄中

我剛剛遇到了這個奇怪的事情:我想做相當於將一個目錄拖到另一個目錄中(移動它)。 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_filesBook/最終覆蓋它(如果它已經存在)。我發出自然的命令:

mv Cosine\ Similarity_files Book/

我收到訊息Directory not emptyWTF!但如果我要求它更深入一層,情況會更好:

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選項。欲了解更多信息,請查看此答案

相關內容