Seperti dijelaskan oleh @ssssteffff, dengan mv *
, shell melakukan ekspansi wildcard dari file di direktori saat ini. Namun perilaku mv
perintah tergantung pada berapa banyak argumen *
berkembang. Jika ada lebih dari dua argumen, maka argumen terakhir harus berupa direktori:
mv [OPTION]... SOURCE... DIRECTORY
Begitu,
Saya membuat 5 file
$ touch 1 2 3 4 5
$ ls
1 2 3 4 5
$ mv *
mv: target ‘5’ is not a directory
$ ls
1 2 3 4 5
Sekarang jika saya membuat direktori yang datang sebagai parameter terakhir untuk ekspansi wild-card, maka:
$ mkdir 6
$ mv *
$ ls
6
$ ls 6
1 2 3 4 5
Anda harus memeriksa ulang apa argumen terakhir itu.
- Jika argumen terakhir adalah direktori, maka data Anda mungkin aman.
- Jika jumlah total argumen adalah 2, dan argumen terakhir adalah direktori, maka juga data Anda mungkin aman.
- Jika jumlah total argumen adalah 2, dan argumen terakhir adalah sebuah file, maka file kedua pasti hilang.
Apakah Anda yakin tidak melihat kesalahan seperti ini?
mv: target ‘5’ is not a directory`