2012-04-01 25 views
9

Làm cách nào tôi có thể di chuyển toàn bộ thư mục của _vim sang ~/.vim?Bash: Làm cách nào để di chuyển tất cả nội dung trong thư mục lên đến một cấp?

$ mv ~/.vim/_vim/ ~/.vim 
mv: `/home/kithokit/.vim/_vim/' and `/home/kithokit/.vim/_vim' are the same file 

Tôi không thể làm điều đó. Về cơ bản những gì tôi muốn làm là chỉ di chuyển tất cả các nội dung bên trong _vim thư mục lên đến một mức độ, mà là ở ~/.vim/

+0

@Mat tại sao downvote? tại sao lại gần? –

+0

Tôi không làm như vậy. – Mat

+0

Không phải là câu hỏi lập trình - thuộc về http://superuser.com –

Trả lời

17
mv ~/.vim/_vim/* ~/.vim 

Bash mở rộng * như lệnh bây giờ đọc

mv ~/.vim/_vim/file_1 ... ~/.vim/_vim/file_n ~/.vim 
+0

thx nó hoạt động! tôi bỏ lỡ * –

+0

Điều này sẽ bỏ qua các tệp chấm (như ".config"). –

+0

@Dunes Chính xác, nó sẽ không di chuyển nội dung thư mục _all_ (như đã được yêu cầu). Tôi nghĩ điều đó đáng nói đến. –

0
$ mv ~/.vim/_vim/* ~/.vim/ 
$ rmdir ~/.vim/_vim 
1

Nếu bạn muốn cẩn thận di chuyển các dấu chấm ẩn cũng như các tệp hiển thị thông thường và cũng không làm ẩn đi bất kỳ tệp nào đã có trong ~/.vim/, thì hãy làm như sau:

for A in $(find -mindepth 1 -maxdepth 1 ~/.vim/_vim) ; do B=$(basename $A) ; mv -iv ~/.vim/_vim/$B ~/.vim/ ; done 

Rất có thể, bạn sẽ muốn tuân theo điều đó với rmdir ~/.vim/_vim.

Xem thêm đề xuất @Dunes 'trong các nhận xét bên dưới.

+1

Bạn có thể sử dụng xarg để làm cho lệnh đơn giản hơn. 'find -mindepth 1 -maxdepth 1 ~/.vim/_vim | xargs mv -iv -t ~/.vim/'. Bạn cũng có thể muốn sử dụng '-u' thay vì' -i'. – Dunes

+0

@Dunes: Thật tuyệt. Tôi đã không biết về tùy chọn '-t', và đã mười năm kể từ lần cuối tôi sử dụng' xargs'. Tôi thích nó. – thb

Các vấn đề liên quan