Bagaimana cara menemukan file saya yang dipindahkan tanpa tujuan

4

Saya dalam masalah. Saya menekan 'masuk' tanpa tujuan. Saya memiliki dua file di direktori yang sama dengan IDENTIFIER yang sama dalam namanya. Saya ingin memindahkan mereka ke folder, jadi saya masuk

mv / path / ke / file / IDENTIFIER *

Tapi sebelum saya masuk tujuan saya menekan 'enter' dan salah satu file saya menghilang yang secara alfabet lebih tinggi .. Sekarang saya tidak dapat menemukan file itu di mana pun. Aku ada di rumahku

Direktori Abhishek @ abhishek $ di terminal.

Adakah yang bisa memberi saya jawaban yang rumit tentang bagaimana saya dapat menemukan atau itu ditimpa oleh file lain. Saya pemula di dunia Linux tapi saya tahu cara kerja terminal. Jadi saya bisa melakukan beberapa perintah dasar.

Abhishek Anshu
sumber

Jawaban:

4

Jika Anda hanya memiliki dua file, misalnya:

IDENTIFIER_1
IDENTIFIER_2

maka Anda telah ditimpa IDENTIFIER_2dengan konten IDENTIFIER_1.

Contoh:

$ cat IDENTIFIER_1
IDENTIFIER_1

$ cat IDENTIFIER_2
IDENTIFIER_2

$ ls -og IDENTIFIER_*
-rw-rw-r-- 1  0 Mai 19 18:28 IDENTIFIER_1
-rw-rw-r-- 1 13 Mai 19 18:27 IDENTIFIER_2

$ mv IDENTIFIER_*

$ ls -og IDENTIFIER_*
-rw-rw-r-- 1 13 Mai 19 18:30 IDENTIFIER_2

$ cat IDENTIFIER_2 
IDENTIFIER_1

Jika Anda memiliki lebih dari dua file, itu akan menjadi kesalahan:

$ ls -og IDENTIFIER_*
-rw-rw-r-- 1  0 Mai 19 18:28 IDENTIFIER_1
-rw-rw-r-- 1 13 Mai 19 18:27 IDENTIFIER_2
-rw-rw-r-- 1  0 Mai 19 18:28 IDENTIFIER_3

$ mv IDENTIFIER_*
mv: target ‘IDENTIFIER_3’ is not a directory

Untuk penjelasan yang lebih baik lihat @erg .

AB
sumber
Salah satu trik yang saya pelajari dari tahun lalu, untuk memindahkan konten mkdir z; mv *yang memindahkan semuanya ke dalam direktori z... tentu saja, dengan asumsi bahwa zdirektori adalah item terakhir dalam *ekspansi.
1
Kedengarannya berbahaya :)
AB
Anda selalu dapat menyentuh nama file -ijika Anda khawatir tentang itu.
2

Saya hanya ingin memperluas jawaban yang diposting AB.

Wildcard hanya memperluas IDENTIFIER_ * ke semua instance IDENTIFIER_ *. Karena itu, mv IDENTIFIER_*pada kenyataannya dibaca sebagai mv IDENTIFIER_1 IDENTIFIER_2.

Ini adalah alasan yang sama mengapa loop bekerja seperti itu for file in *; do, juga echo IDENTIFIER_*, dan seterusnya dan seterusnya.

Sekarang alasan mengapa 3 file tidak berfungsi lagi karena perintah mv IDENTIFIER_*diperluas mv IDENTIFIER_1 IDENTIFIER_2 IDENTIFIER_3, dan Anda bingung mvdengan terlalu banyak argumen.

masukkan deskripsi gambar di sini

Sergiy Kolodyazhnyy
sumber
Saya harus menghapus jawaban saya =) +1
AB
tidak, tidak, jangan hapus itu. Itu masih menunjukkan semuanya dengan benar
Sergiy Kolodyazhnyy
1

Anda menimpa file kedua dengan yang pertama.

Itu hilang kecuali jika Anda melepas segera partisi / perangkat dan mencoba memulihkannya dengan alat seperti testdisk , photorec , extundelete , atau apa pun.

titik balik matahari
sumber