Câu hỏi Làm thế nào để đổi tên một thư mục thông qua dòng lệnh?


Tôi đã có thư mục /home/user/oldname và tôi muốn đổi tên thành /home/user/newname. Làm thế nào tôi có thể làm điều này trong một thiết bị đầu cuối?


473
2017-08-08 16:58


gốc


Xem thêm: Cách di chuyển thư mục - kenorb
Luôn sử dụng mv hoặc là rename. - John Strood


Các câu trả lời:


mv /home/user/oldname /home/user/newname

620
2017-08-08 17:10



Liên quan brighthub.com/computing/linux/articles/20667.aspx - N.N.
Bài viết hay. Đó chính xác là vấn đề. - Rafał Cieślak
Điều này sẽ không hoạt động nếu tên mới đã là một thư mục hiện có. Thay vào đó, nó sẽ di chuyển thư mục cũ bên trong thư mục mới. - cxrodgers
Nếu tên thư mục giống với tên viết hoa, bạn sẽ nhận được No such file or directory. Để tránh điều này làm một cái gì đó như mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder. - DutGRIFF
@cxrodgers: vượt qua --no-target-directory (-T), để tránh điều trị newname như một thư mục đích. - jfs


mv có thể làm hai công việc.

  1. Nó có thể di chuyển các tập tin hoặc thư mục
  2. Nó có thể đổi tên các tập tin hoặc thư mục

Để chỉ đổi tên một tập tin hoặc thư mục, hãy nhập vào trong Terminal:

mv old_name new_name 

với không gian giữa tên cũ và tên mới.

Để di chuyển tệp hoặc thư mục, hãy nhập tệp này trong Thiết bị đầu cuối.

mv file_name ~/Desktop 

nó sẽ di chuyển tệp đến màn hình nền.

Nếu là thư mục bạn nên thêm -R trước tên thư mục:

mv -R directory_name ~/Desktop

104
2018-04-21 13:58



mv trên Ubuntu là từ GNU coreutils. AFAICT nó không có -R tùy chọn, cũng không cần thiết khi di chuyển một thư mục. - arielf
-r thậm chí không làm việc - user1735921
Tùy chọn đúng là -T. Xem @ bmaupin's câu trả lời cho hành vi của nó. - chronometric


mv -T /home/user/oldname /home/user/newname

Điều đó sẽ đổi tên thư mục nếu đích không tồn tại hoặc nếu nó tồn tại nhưng nó trống. Nếu không, nó sẽ cho bạn một lỗi.

Nếu bạn làm điều này thay vào đó:

mv /home/user/oldname /home/user/newname

Một trong hai điều sẽ xảy ra:

  • Nếu /home/user/newname không tồn tại, nó sẽ đổi tên /home/user/oldname đến /home/user/newname
  • Nếu /home/user/newname tồn tại, nó sẽ di chuyển /home/user/oldname vào /home/user/newname, I E. /home/user/newname/oldname

Nguồn: Làm thế nào để quyết định rằng mv di chuyển vào một thư mục thay vì thay thế thư mục?


27
2018-04-27 18:31





Điều này gvfs-move lệnh cũng sẽ đổi tên các tập tin và thư mục.

gvfs-move /home/user/oldname /home/user/newname

4
2018-04-21 05:26





Nếu bạn muốn đổi tên thư mục ở cấp độ của mình trong hệ thống tệp (ví dụ: bạn đang ở thư mục chính của mình và muốn đổi tên thư mục cũng nằm trong thư mục chính của bạn):

mv Directory ./NewNameDirectory

4
2017-07-12 13:26





gvfs-rename cũng sẽ đổi tên các thư mục. Nó sẽ đưa ra một lỗi nếu một thư mục với tên mới đã tồn tại. Giới hạn duy nhất là bạn không thể sử dụng đường dẫn có tên thư mục. Vì thế

gvfs-rename /home/boo /home/boo-the-dog 

sẽ không hoạt động, nhưng

cd /home 
gvfs-rename boo boo-the-dog 

sẽ làm việc. Không phải là hữu ích như mv -T nhưng tôi đọc trong người đàn ông rằng nó có nghĩa là cho các hoạt động mạng.


1
2017-11-29 07:58