GNU/Linux >> Belajar Linux >  >> Linux

Hasilkan Md5sum Untuk Semua File Dalam Direktori, Dan Kemudian Tulis (nama file).md5 Untuk Setiap File Yang Berisi Md5sum File Itu?

Saya memiliki direktori yang penuh dengan file. Setiap file akan disalin ke jenis host tujuan tertentu.

Saya ingin menghitung jumlah MD5 untuk setiap file dalam direktori, dan menyimpan jumlah md5 itu dalam file yang cocok dengan nama file yang menghasilkan jumlah, tetapi dengan .md5 ditambahkan.

Jadi, misalnya, jika saya memiliki direktori dengan:

a.bin
b.bin
c.bin

Hasil akhir seharusnya:

a.bin
a.bin.md5     # a.bin's calculated checksum
b.bin
b.bin.md5     # b.bin's calculated checksum
c.bin
c.bin.md5     # c.bin's calculated checksum

Saya telah mencoba ini dengan find exec, dan dengan xargs.

Dengan find, saya mencoba perintah ini:

find . -type f -exec md5sum {} + > {}.md5

Menggunakan xargs, saya mencoba perintah ini:

find . -type f | xargs -I {} md5sum {} > {}.md5

Dalam kedua kasus tersebut, saya mendapatkan file bernama {}.txt, yang sebenarnya bukan yang saya cari.

Adakah yang bisa menunjukkan cara mengubah ini untuk menghasilkan file md5 yang ingin saya buat?

Jawaban yang Diterima:

cd /path/to/files &&
for file in *; do
    if [[ -f "$file" ]]; then
        md5sum -- "$file" > "${file}.md5"
    fi
done

Linux
  1. Ganti Nama Semua File dan Nama Direktori menjadi Huruf Kecil di Linux

  2. Hapus Semua File/direktori Kecuali Satu File?

  3. Temukan File Untuk Beberapa Variasi Pada Nama File Yang Ada Bersama Di Direktori Yang Sama?

  1. Tabel Izin untuk Jenis Pengguna File/Direktori Dan Sistem File

  2. Temukan file lalu cd ke direktori itu di Linux

  3. tautan simbolik:temukan semua file yang terhubung ke file ini

  1. Bagaimana cara menggunakan grep untuk mencari direktori saat ini untuk semua file yang memiliki string halo namun hanya menampilkan file .h dan .cc?

  2. perintah linux untuk mengosongkan semua file direktori

  3. Temukan semua file nol-byte di direktori dan subdirektori