Ai đó có thể giải thích tại sao điều này xảy ra?
Cụ thể nhất: Tại sao nội dung của 1 được sao chép vào f? Và tại sao f được sao chép vào g?
$ tree
.
0 directories, 0 files
$ mkdir 1
$ mkdir 2
$ touch 1/a
$ touch 1/b
$ mkdir 1/c
$ touch 1/c/x
$ tree
.
├── 1
│ ├── a
│ ├── b
│ └── c
│ └── x
└── 2
3 directories, 3 files
$ cp -r 1/* 2/*
zsh: no matches found: 2/*
$ cp -r 1/* 2/*
$ mkdir 2/f
$ mkdir 2/g
$ cp -r 1/* 2/*
$ tree
.
├── 1
│ ├── a
│ ├── b
│ └── c
│ └── x
└── 2
├── f
└── g
├── a
├── b
├── c
│ └── x
└── f
7 directories, 6 files
Nếu đích đến của
—
Aaron D. Marasco
cploại này không rõ ràng, bạn có thể thử --target-directory, ví dụ: cp --target-directory=2 fileglob1 fileglob2tôi thấy tùy chọn đó rất hữu ích trong các tập lệnh mà tôi không chắc chắn những gì ảm đạm sẽ hoạt động và những gì sẽ không; nó giúp ngăn ngừa vô tình ghi đè lên công cụ. (Một số phiên bản cpcho phép -t.)
cp -r 1/* 2/*trong đó - nó được thực hiện hai lần liên tiếp với các kết quả khác nhau (rõ ràng). Nó luôn luôn phải phàn nàn về việc không tìm thấy2/*vì vỏ không thể mở rộng toàn cầu - không có gì phù hợp với nó. Và nội dung của1không được sao chépfvào ví dụ này.