Bagaimana saya bisa menggunakan perintah tar untuk mengelompokkan file tanpa kompresi?


60

Saya memiliki folder yang sangat besar dengan 120.000 file. dan saya harus memindahkannya ke lokasi lain di mesin yang sama (partisi yang sama).

Saya ingin menggunakan tarperintah untuk mengelompokkan mereka sebagai satu unit dan kemudian mvmereka ke lokasi akhir.

Perintah apa yang harus saya jalankan untuk tarmereka semua bersama-sama dan tidak memampatkan apa pun (saya butuh hasil tercepat).


1
Mengapa menggunakan tar, dan bukan hanya mv (1) file? Atau gunakan cp (1) jika Anda tidak ingin kehilangan yang asli?
vonbrand

@vonbrand mungkin ingin rsync melalui jaringan satu file kontinu tunggal. jauh lebih cepat daripada rsyncing file 120k lebih kecil. itu perbedaan antara kecepatan penuh konstan ke tertinggi dan terendah
mwm

Jawaban:


85

tar tidak dikompresi secara default, tapi jangan tambahkan opsi kompresi:

tar cvf myfolder.tar myfolder

Saya memasukkan komentar Hennes dalam jawaban saya karena itu menambahkan informasi yang berguna:

TAR (arsip pita) pada awalnya adalah program unix yang digunakan untuk membuat arsip pada pita. Karena semua perangkat diperlakukan sebagai file di bawah unix, mudah untuk tidak menulis ke kaset tetapi sebagai file. Ini biasanya dilakukan dengan flag -f. Perintah tar cvf myfolder.tar myfolder berarti tar, c reate, v erbose f ile filename_to_create what_to_tar. Tidak ada kompresi di mana pun ini. Arsip tar (sebagai file) di mana sering dikompres menggunakan program kompres dan memperoleh ekstensi .Z (mis. File.tar.Z). Kemudian ini dimasukkan dalam gtar dengan bendera z


Akankah itu secara rekursif menambahkan semua subfolder dan file di tar?
Sergserg

2
@Serg, ya, pasti.
terdon

1
Terima kasih. Saya biasanya mencoba menjawab dalam bentuk pendek dan panjang. Seperti dalam "ya / tidak itu akan [tidak] bekerja" untuk yang singkat, dan penjelasan mengapa sebagai jawaban yang lebih panjang. Memiliki latar belakang mengapa sering membantu di masa depan.
Hennes

@Serg karena tidak selalu halnya manual atau instruksi begitu baik sehingga mereka membuat semuanya menjadi jelas hanya dengan membacanya, kadang-kadang cara terbaik adalah terus maju dan mencoba perintah itu, maka Anda akan melihat apa yang dilakukannya, dan begitu Anda tahu apa yang dilakukannya atau memiliki ide yang baik maka manual dapat mengkonfirmasi untuk Anda! mudah untuk menguji tar pada contoh kecil kumpulan file. Dengan contoh bagaimana menggunakannya, tanpa harus membuat kepala atau ekor manual.
barlop

Perhatikan bahwa jika hasil tercepat diinginkan, Anda harus menghilangkan tanda "v" untuk membisukan output. Dalam kasus saya ini mengurangi waktu perintah dari 16 detik menjadi 6 detik ketika menjalankannya pada instance AWS t2.medium.
David Backeus

6

Jawaban @terdon benar.

Tapi saya melakukan kesalahan kecil tar cvf myfolder.tar.gz myfolder. Saya ingin nama akhir yang sama untuk file di jalur yang sama tar.gzbahkan ketika itu tidak dikompresi.

Jadi, jika Anda meletakkan sesuatu seperti .gz, .zdi akhir nama file yang Anda coba tar, aplikasi tar akan mengerti Anda ingin menggunakan beberapa kompresi, dan itu akan berlaku sesuai dengan apa yang Anda masukkan (gz = gzip).

Jadi jika Anda ingin menggunakan ekstensi seperti itu tar.gz, pastikan untuk menggunakan benderanya--no-auto-compress

--no-auto-compress    do not use archive suffix to determine the compression 
program
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.