Câu hỏi Di chuyển thư mục


Nếu tôi sử dụng cp lệnh sao chép một thư mục A vào bên trong thư mục B, nó sẽ tăng gấp đôi lượng không gian cần thiết (thư mục A + phiên bản sao chép của thư mục A)? Tôi không thể tưởng tượng đó là trường hợp, nhưng nó sẽ làm phiền thời gian tìm kiếm trên đĩa cho các tập tin trong thư mục đó?

Tôi là người mới bắt đầu nên tôi xin lỗi nếu câu hỏi này không thực sự hợp lý.


4
2017-08-05 13:45


gốc




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


cp sao chép tệp. Nếu bạn chỉ định một thư mục (tôi đã không bao giờ thử nghiệm này) nó có lẽ sẽ sao chép nội dung của thư mục này, và đặt tất cả chúng (bao gồm thư mục gốc) vào thư mục đích. Có, nó sẽ tạo ra hai bản sao của (các) tệp đích và có, nó có thể sẽ làm phiền một số thứ như thế.

Bạn có thể kéo và thả các tập tin một cách dễ dàng trong Nautilus để di chuyển chúng một cách tự nhiên, không ảnh hưởng tiêu cực đến tối ưu hóa ổ đĩa cứng. Các mv lệnh trong thiết bị đầu cuối sẽ làm điều tương tự. Nó tương tự trong khả năng sử dụng lệnh cp:

mv </oldlocation/target> </newlocation/destination/>

Trường hợp đích là một tệp hoặc một thư mục và đích đến là một thư mục.

LƯU Ý: Nếu bạn sử dụng mv </location/filenameA> <location/filenameB> nó sẽ đổi tên tập tin. Ví dụ,

mv /etc/x11/xorg.conf /etc/x11/xorg.conf.backup

sẽ đổi tên xorg.conf tệp văn bản để xorg.conf.backup. Hãy thử thực hiện tìm kiếm trên google các công cụ dòng lệnh linux hữu ích.

Một mẹo nhỏ gọn khác trong dòng lệnh là sử dụng tùy chọn 'man'. Ví dụ

mv man

hoặc là

sudo man

'Người đàn ông' là viết tắt của hướng dẫn sử dụng. Mỗi ứng dụng đầu cuối đều có hướng dẫn chi tiết về bản chất của ứng dụng, tất cả các tùy chọn và định nghĩa cho mọi thứ. Bạn có thể chạy tùy chọn man với bất kỳ lệnh terminal nào bạn cài đặt.


2
2017-08-05 14:05



Phải, tôi hiểu điều đó, tôi đoán cách tôi nên đặt câu hỏi là nếu tôi sao chép một thư mục, chỉ cần tạo một con trỏ khác đến nơi các tệp đó được lưu trữ (tôi giả định tuần tự trên đĩa) hoặc thực sự sẽ ghi thư mục khác Một không gian có kích thước trên đĩa, hoặc vít với cách nó nhìn lên một cách xấu. Như tôi đã nói, tôi rất noob, và có lẽ đây là một câu hỏi quá phức tạp để tôi hiểu câu trả lời mà không làm nhiều nghiên cứu hơn. - RyanGC
Tra cứu một số video hoặc bài viết trên google / youtube về cách hệ thống tệp linux hoạt động. Nó rất khác với Windows, nó thực sự hấp dẫn. Linux ghi các tập tin HDD vật lý vào đầu của mỗi HDD HDD, và tiếp tục với mã hóa tiếp theo nếu có bất kỳ không gian còn lại, và thêm phần còn lại vào sọc tiếp theo, và như vậy. Truy cập tệp nhanh hơn nhiều so với Windows vì điều này. Nó cũng ánh xạ các tập tin kỹ thuật số hơn là thể chất. Các tệp không được chuyển sọc như trong Windows. Bạn không bao giờ phải chống phân mảnh trong Linux. - Alex
Nếu bạn dùng cp để sao chép một thư mục, nó sẽ phát ra một thông báo cho bạn biết nó đang bỏ qua thư mục và không làm gì cả. Bạn cần sử dụng -r (hoặc tốt hơn, -a để bảo vệ một số thuộc tính khác), để sao chép một thư mục, khi nó bật đệ quy (nhập một thư mục để sao chép nội dung của nó). - thomasrutter


Lệnh di chuyển trong linux là mv, xem mv --help để biết thêm thông tin

điều này di chuyển thư mục và tất cả các thư mục con

mv -f dir1 /destinationDir

Điều này di chuyển các tập tin từ dir1 đến dir2

mv -f dir1/* dir2

2
2017-08-05 13:56



Đúng, nhưng tôi muốn có cùng một thư mục trong thư mục khác. - RyanGC


Thêm câu trả lời vì đây là kết quả tìm kiếm đầu tiên của tôi trong Google và không có nhiều câu trả lời kỹ lưỡng về lệnh mv và liên kết có ý nghĩa gì ở bất kỳ mức độ chi tiết nào.

cp - bản sao. Nó sẽ tạo một bản sao giống hệt nhau theo mặc định, chiếm không gian giống nhau, mặc dù bạn có thể yêu cầu cp tạo liên kết cứng (con trỏ tới mỗi tệp) bằng cách sử dụng tùy chọn -l.

Nếu bạn muốn tạo một bản sao của một thư mục, hãy làm như sau:

cp -a source dest

Where -a có nghĩa là một "bản lưu trữ" hoặc bản sao giống hệt nhau, bao gồm các thư mục và liên kết. Bạn có thể trao đổi nó cho -r nếu bạn muốn sao chép các thư mục nhưng không muốn liên kết.

Nếu bạn muốn tạo một bản sao có liên kết đến các tệp gốc (thay đổi bản gốc cũng thay đổi bản sao và chiếm ít không gian hơn), hãy làm như sau:

cp -l source dest

ln - liên kết. Nó sẽ chỉ tạo ra một liên kết, bạn có thể có nó trỏ tới đích của bạn, và nó sẽ chỉ chiếm không gian cần thiết để chỉ tới nó.

Nếu bạn muốn tạo một liên kết duy nhất đến một thư mục, chỉ cần làm điều này:

ln -s source dest

LƯU Ý: -s có nghĩa là liên kết "tượng trưng". Bởi vì ln có thể tạo ra cứng hoặc mềm (hầu hết mọi người gọi đây là "tượng trưng") liên kết. Các liên kết cứng chỉ có thể trỏ đến các tệp và có các hạn chế khác, trong khi các liên kết tượng trưng có thể trỏ tới bất kỳ thứ gì, kể cả các thư mục. Để có một bài viết hoàn chỉnh về sự khác biệt giữa các liên kết cứng và mềm, hãy xem bài viết tuyệt vời này đây.

mv - di chuyển tệp hoặc thư mục.

Để di chuyển các thư mục (hoặc tệp) chỉ cần thực hiện việc này:

mv source dest

0
2017-09-04 01:42



Nó có thể là đáng nói đến mà không có -r hoặc là -a, cp sẽ chỉ sao chép các tệp (có nghĩa là, source phải là một tệp) và sẽ bỏ qua các thư mục. - thomasrutter
Cảm ơn ngài! :) - Nick Steele
cp -a cũng bảo tồn chủ sở hữu và ID nhóm của tôi nghĩ. - WinEunuuchs2Unix