Nghĩa là gì?


9

./nghĩa là gì?

Ví dụ: Lệnh sau có nghĩa là di chuyển tệp từ Gapache2thư mục sang sites-available:

root@ip-10-112-55-203:/etc/mds-1.2-beta4/sana/config/etc/Gapache2# mv ./ /etc/apache2/sites-available

Nếu không làm thế nào điều này nên được sửa đổi?

Tôi đã thử nhận một cái gì đó từ Google Tìm kiếm. Nhưng ./bị bỏ qua bởi các công cụ tìm kiếm.

Câu trả lời:


13

Trong Unix / linux .có nghĩa là thư mục hiện tại trong trường hợp của bạn /etc/mds-1.2-beta4/sana/config/etc/Gapache2. Ngoài ra còn có nhiều phím tắt như:

  • ..: thư mục mẹ ( /etc/mds-1.2-beta4/sana/config/etc/)
  • ~: Thư mục chủ

Vì vậy, để di chuyển tất cả các thư mục và tệp từ /etc/mds-1.2-beta4/sana/config/etc/Gapache2đến /etc/apache2/sites-available, lệnh sẽ như thế này

mv ./* /etc/apache2/sites-available/

CẬP NHẬT: Liên kết này là một tài nguyên tốt cho các lệnh UNIX cơ bản


Để di chuyển các tập tin ẩn quá, thực sự bạn cần một biểu thức toàn cầu phức tạp hơn (hoặc các cài đặt shell khác nhau). Xem stackoverflow.com/questions/1586477/
Mạnh

(giả vờ là người dùng mới trong nhận xét này) " ./có nghĩa là thư mục hiện tại" Sự khác biệt giữa ../sau đó là gì? Tôi nghĩ rằng đó chỉ .có nghĩa là thư mục hiện tại.
gertvdijk

@gertvdijk: Cập nhật câu trả lời. :)
aneeshep

3

Trong khoảng .

Trong UNIX / Linux, .có nghĩa là thư mục hiện tại. Bạn cũng sẽ thấy nó được liệt kê trong lscác lệnh:

ls -al
total 40348
drwx------  20 root root     4096 Feb  2 23:05 .               <-- there!
drwxr-xr-x  24 root root     4096 Jan 31 20:07 ..
-rw-r--r--   1 root root      322 Dec 16 17:35 20-revert

Dấu gạch chéo ./và các liên kết tượng trưng

Khi nối thêm /nó, nó có ý nghĩa tương tự như nối thêm một /tên thư mục khác. Nó sẽ chỉ đảm bảo rằng bạn không hoạt động trên một tập tin. Nói chung, điều này sẽ không phải là một sự khác biệt trong cpmvcác lệnh, nhưng bạn sẽ thấy một sự khác biệt khi bạn đang sử dụng các liên kết tượng trưng. Giả sử cấu trúc này:

.                                                                   
├── a                                                               
├── dir1
│   ├── b
│   └── c
├── dir2
│   └── d
└── symlink -> dir2

Sau đó, một danh sách thông thường sẽ hiển thị chính liên kết

ls -l symlink
lrwxrwxrwx 1 gert gert 4 Feb  3 12:15 symlink -> dir2

nhưng việc thêm vào /sẽ làm cho nó liệt kê xuống và hiển thị nội dung.

ls -l symlink/
total 0
-rw-rw-r-- 1 gert gert 0 Feb  3 12:15 d

Điều này có nghĩa là khi sử dụng các thao tác, sẽ là một điều tốt để nối thêm /nếu bạn tham khảo nội dung của nó hoặc bạn muốn sao chép / di chuyển vào nó bằng cách hủy bỏ liên kết, thay vì tự thay thế liên kết.

Xem thêm: Chém dấu gạch chéo trên các liên kết tượng trưng đến thư mục

Quay lại ví dụ

Trong ví dụ trong câu hỏi của bạn, bạn thực sự muốn chỉ di chuyển nội dung của thư mục sang thư mục khác. Vì vậy, như aneeshep đã chỉ ra , bạn nên sử dụng mv ./* destdir/. Điều này giống như mv * destdir/shell của bạn (Bash) mở rộng *từ thư mục hiện tại theo mặc định.

Vì vậy, tôi sẽ chạy nó như thế này (trong thư mục nguồn):

mv * /etc/apache2/sites-available/
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.