Tôi đang di chuyển thư mục nhà của mình từ một hệ thống cũ sang một hệ thống mới và tarball tôi tạo có chứa mọi thứ, bao gồm các tệp ẩn như .bashrc. Tuy nhiên, khi tôi di chuyển nội dung của tarball đã giải nén (nằm trong / tmp) sang thư mục chính mới của tôi, các tệp ẩn không sao chép ( mv /tmp/home/rcook/* /home/rcook/
). Làm thế nào tôi có thể nhận được mv để di chuyển chúng?
Trên thực tế, tôi nghĩ rằng vấn đề không nằm ở mv, mà là vấn đề toàn cầu của bash. Nếu tôi làm điều này:
mkdir a
mkdir b
touch a/.foo
touch a/bar
mv a/* b/
ls -a a/ b/
Tôi thấy điều này:
a/:
. .. .foo
b/:
. .. bar
a/.foo
không di chuyển. Vậy làm thế nào tôi có thể lấy * ký tự đại diện để tìm các tập tin ẩn?
Có, tôi cho rằng tôi có thể giải nén tarball trực tiếp vào thư mục nhà của mình, nhưng tarball giải nén vào home/rcook/...
và tôi muốn chắc chắn rằng tôi đã ghi đè lên bản mới .bashrc
, v.v. bằng các phiên bản cũ, tùy chỉnh và biết cách tìm và di chuyển các tệp ẩn là một kỹ năng đáng giá. Gợi ý?
Một số câu trả lời đề nghị làm một cái gì đó như mv src/.* dest/
. Tuy nhiên, tôi đã thử điều này trên các thư mục thử nghiệm của tôi và đã gặp lỗi. Bắt đầu với:
rcook$ ls -a a/ b/
a/:
. .. bar .foo
b/:
. ..
rcook$ mv a/.* b/
mv: cannot move 'a/.' to 'b/.': Device or resource busy
mv: cannot remove 'a/..': Is a directory
rcook$ ls -a a/ b/
a/:
. .. bar
b/:
. .. .foo
Tôi đang làm gì sai?