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 ls
cá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 cp
và mv
cá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/