GNU/Linux >> Belajar Linux >  >> Linux

Menyalin file di Linux

Menyalin dokumen yang digunakan untuk memerlukan anggota staf khusus di kantor, dan kemudian mesin khusus. Saat ini, menyalin adalah tugas yang dilakukan pengguna komputer tanpa berpikir dua kali. Menyalin data di komputer sangat sepele sehingga salinan dibuat tanpa Anda sadari, seperti saat menyeret file ke drive eksternal.

Konsep bahwa entitas digital sepele untuk direproduksi tersebar luas, sehingga sebagian besar ahli komputer modern tidak memikirkan opsi yang tersedia untuk menduplikasi pekerjaan mereka. Namun, ada beberapa cara berbeda untuk menyalin file di Linux. Setiap metode memiliki fitur bernuansa yang mungkin bermanfaat bagi Anda, tergantung pada apa yang perlu Anda selesaikan.

Berikut adalah beberapa cara untuk menyalin file di Linux, BSD, dan Mac.

Menyalin di GUI

Wadah Linux

  • Apa itu container Linux?
  • Pengantar terminologi wadah
  • Unduh:Containers Primer
  • Operator Kubernetes:Mengotomatiskan platform orkestrasi container
  • eBook:Pola Kubernetes untuk mendesain aplikasi cloud-native
  • Apa itu Kubernetes?

Seperti kebanyakan sistem operasi, Anda dapat melakukan semua manajemen file di GUI, jika itu cara yang Anda inginkan.

Seret dan lepas

Cara paling jelas untuk menyalin file adalah cara Anda mungkin terbiasa menyalin file di komputer:seret dan lepas. Pada kebanyakan desktop Linux, menyeret dan melepaskan dari satu folder lokal ke folder lokal lain bergerak sebuah file secara default. Anda dapat mengubah perilaku ini menjadi operasi penyalinan dengan menahan tombol Ctrl setelah Anda mulai menyeret file.

Kursor Anda mungkin menunjukkan indikator, seperti tanda tambah, untuk menunjukkan bahwa Anda sedang dalam mode salin:

Perhatikan bahwa jika file ada di sistem jarak jauh, baik itu server web atau komputer lain di jaringan Anda sendiri yang Anda akses melalui protokol berbagi file, tindakan defaultnya sering kali adalah menyalin, bukan memindahkan, file.

Klik kanan

Jika Anda menemukan menyeret dan menjatuhkan file di sekitar desktop Anda tidak tepat atau canggung, atau melakukannya terlalu banyak mengambil tangan Anda dari keyboard Anda, Anda biasanya dapat menyalin file menggunakan menu klik kanan. Kemungkinan ini bergantung pada pengelola file yang Anda gunakan, tetapi umumnya, klik kanan menghasilkan menu kontekstual yang berisi tindakan umum.

Tindakan salin menu kontekstual menyimpan jalur file (tempat file ada di sistem Anda) di clipboard sehingga Anda dapat menempel file di tempat lain:

Dalam hal ini, Anda tidak benar-benar menyalin konten file ke clipboard Anda. Sebagai gantinya, Anda menyalin jalur file. Saat Anda menempel, pengelola file Anda melihat jalur di papan klip Anda dan kemudian menjalankan perintah salin, menyalin file yang terletak di jalur tersebut ke jalur yang Anda tempel.

Menyalin pada baris perintah

Meskipun GUI adalah cara yang umum untuk menyalin file, menyalin di terminal bisa lebih efisien.

cp

Persamaan berbasis terminal yang jelas untuk menyalin dan menempelkan file di desktop adalah cp memerintah. Perintah ini menyalin file dan direktori dan relatif mudah. Itu menggunakan sumber familiar yang sudah dikenal dan target (dalam urutan itu) sintaks, jadi untuk menyalin file bernama example.txt ke dalam Dokumen . Anda direktori:

$ cp example.txt ~/Documents

Sama seperti saat Anda menarik dan melepas file ke folder, tindakan ini tidak menggantikan Dokumen dengan example.txt . Sebaliknya, cp mendeteksi bahwa Dokumen adalah folder, dan menempatkan salinan example.txt ke dalamnya.

Anda juga dapat dengan mudah (dan efisien), mengganti nama file saat Anda menyalinnya:

$ cp example.txt ~/Documents/example_copy.txt

Fakta itu penting karena memungkinkan Anda membuat salinan file di direktori yang sama dengan aslinya:

$ cp example.txt example.txt
cp:'example.txt' dan 'example.txt' adalah file yang sama.
$ cp example.txt example_copy.txt

Untuk menyalin direktori, Anda harus menggunakan -r opsi, yang merupakan singkatan dari --rekursif . Opsi ini menjalankan cp pada direktori inode , dan kemudian pada semua file dalam direktori. Tanpa -r opsi, cp bahkan tidak mengenali direktori sebagai objek yang dapat disalin:

$ catatan cp/ catatan-cadangan
cp:-r tidak ditentukan; menghilangkan direktori 'notes/'
$ cp -r notes/ notes-backup

kucing

kucing perintah adalah salah satu perintah yang paling disalahpahami, tetapi hanya karena itu mencontohkan fleksibilitas ekstrim dari sistem POSIX. Di antara yang lainnya kucing tidak (termasuk tujuan yang dimaksudkan dari concat enating file), itu juga dapat menyalin. Misalnya, dengan kucing Anda dapat membuat dua salinan dari satu file hanya dengan satu perintah. Anda tidak dapat melakukannya dengan cp .

Pentingnya menggunakan kucing menyalin file adalah cara sistem menafsirkan tindakan. Saat Anda menggunakan cp untuk menyalin file, atribut file disalin bersama dengan file itu sendiri. Artinya izin file duplikat sama dengan aslinya:

$ ls -l -G -g
-rw-r--r--. 1 57368 25 Jul 23:57  foo.jpg
$ cp foo.jpg bar.jpg
-rw-r--r--. 1 57368 29 Jul 13:37  bar.jpg
-rw-r--r--. 1 57368 25 Jul 23:57  foo.jpg

Menggunakan kucing untuk membaca isi file ke file lain, bagaimanapun, memanggil panggilan sistem untuk membuat file baru. File baru ini tunduk pada umask default Anda pengaturan. Untuk mempelajari lebih lanjut tentang umask , baca artikel Alex Juarez yang membahas umask dan perizinan secara umum.

Jalankan umask untuk mendapatkan setelan saat ini:

$ umask
0002

Setelan ini berarti file baru yang dibuat di lokasi ini diberikan 664 (rw-rw-r-- ) izin karena tidak ada yang ditutupi oleh digit pertama umask pengaturan (dan bit yang dapat dieksekusi bukan bit default untuk pembuatan file), dan izin menulis diblokir oleh digit terakhir.

Saat Anda menyalin dengan kucing , Anda tidak benar-benar menyalin file. Anda menggunakan kucing untuk membaca konten file, lalu mengarahkan output ke file baru:

$ cat foo.jpg> baz.jpg
$ ls -l -G -g
-rw-r--r--. 1 57368 29 Jul 13:37  bar.jpg
-rw-rw-r--. 1 57368 29 Jul 13:42  baz.jpg
-rw-r--r--. 1 57368 25 Jul 23:57  foo.jpg

Seperti yang Anda lihat, kucing membuat file baru dengan umask default sistem yang diterapkan.

Pada akhirnya, ketika semua yang ingin Anda lakukan hanyalah menyalin file, hal-hal teknis seringkali tidak menjadi masalah. Namun terkadang Anda ingin menyalin file dan berakhir dengan serangkaian izin default, dan dengan cat Anda dapat melakukan semuanya dalam satu perintah.

rsync

rsync command adalah alat serbaguna untuk menyalin file, dengan kemampuan penting untuk menyinkronkan sumber dan tujuan Anda. Paling sederhana, rsync dapat digunakan mirip dengan cp perintah:

$ rsync example.txt example_copy.txt
$ ls
example.txt    example_copy.txt

Kekuatan sebenarnya dari perintah ini terletak pada kemampuannya untuk tidak salin bila tidak perlu. Jika Anda menggunakan rsync untuk menyalin file ke direktori, tetapi file itu sudah ada di direktori itu, lalu rsync tidak repot melakukan operasi penyalinan. Secara lokal, fakta itu tidak berarti banyak, tetapi jika Anda menyalin gigabyte data ke server jarak jauh, fitur ini membuat perbedaan besar.

Apa yang membuat perbedaan bahkan secara lokal, adalah kemampuan perintah untuk membedakan file yang memiliki nama yang sama tetapi berisi data yang berbeda. Jika Anda pernah menemukan diri Anda dihadapkan pada dua salinan dari apa yang dimaksudkan sebagai direktori yang sama, maka rsync dapat menyinkronkannya ke dalam satu direktori yang berisi perubahan terbaru dari masing-masing. Penyiapan ini cukup umum terjadi di industri yang belum menemukan keajaiban kontrol versi, dan untuk solusi pencadangan di mana ada satu sumber kebenaran untuk disebarkan.

Anda dapat meniru situasi ini secara sengaja dengan membuat dua folder, satu folder bernama contoh dan example_dupe lainnya :

$ mkdir contoh contoh_dupe

Buat file di folder pertama:

$ echo "satu"> contoh/foo.txt

Gunakan rsync untuk menyinkronkan dua direktori. Opsi paling umum untuk operasi ini adalah -a (untuk arsip , yang memastikan symlink dan file khusus lainnya dipertahankan) dan -v (untuk verbose , memberikan umpan balik kepada Anda tentang kemajuan perintah):

$ rsync -av contoh/ contoh_dupe/

Direktori sekarang berisi informasi yang sama:

$ cat example/foo.txt
satu
$ cat example_dupe/foo.txt
satu

Jika file yang Anda perlakukan sebagai sumber berbeda, maka target diperbarui agar sesuai:

$ echo "dua">> example/foo.txt
$ rsync -av example/  example_dupe/
$ cat example_dupe/foo.txt
satu
dua

Ingatlah bahwa rsync perintah dimaksudkan untuk menyalin data, bukan untuk bertindak sebagai sistem kontrol versi. Misalnya, jika file di tujuan entah bagaimana mendahului file di sumber, file itu masih ditimpa karena rsync membandingkan file untuk divergensi dan mengasumsikan bahwa tujuan selalu dimaksudkan untuk mencerminkan sumber:

$ echo "Anda tidak akan pernah melihat catatan ini lagi"> example_dupe/foo.txt
$ rsync -av example/  example_dupe/
$ cat example_dupe/foo.txt
one
dua

Jika tidak ada perubahan, maka tidak ada penyalinan.

rsync perintah memiliki banyak opsi yang tidak tersedia di cp , seperti kemampuan untuk menetapkan izin target, mengecualikan file, menghapus file usang yang tidak muncul di kedua direktori, dan banyak lagi. Gunakan rsync sebagai pengganti yang ampuh untuk cp , atau hanya sebagai suplemen yang bermanfaat.

Banyak cara untuk menyalin

Ada banyak cara untuk mencapai hasil yang pada dasarnya sama pada sistem POSIX, jadi tampaknya reputasi open source untuk fleksibilitas diperoleh dengan baik. Apakah saya melewatkan cara yang berguna untuk menyalin data? Bagikan peretasan salinan Anda di komentar.


Linux
  1. Memindahkan file di Linux tanpa mv

  2. Apa itu file jarang di Linux

  3. Salin file Linux dengan ETA?

  1. Salin file di terminal Linux

  2. Pindahkan file di terminal Linux

  3. Menyalin file tersembunyi secara rekursif - Linux

  1. Salin file &direktori di Linux

  2. Linux – Pemulihan Data Setelah Menyalin File ke Blokir Perangkat?

  3. Contoh Perintah Objcopy Linux untuk Menyalin dan Menerjemahkan File Objek