Kami biasanya menyalin file dari satu lokasi ke lokasi lain yang ada menggunakan perintah seperti cp
, rsync
, dan scp
dll. Jika lokasi target tidak ada, pertama-tama kita buat dan kemudian salin file ke lokasi yang baru dibuat itu. Sampai sekarang, beginilah cara saya biasanya menyalin file dari satu lokasi ke lokasi lain dari commandline. Tahukah Anda bahwa kita dapat menyalin file dan membuat direktori tujuan secara otomatis jika tidak ada? Tidak? Tidak masalah! Dalam panduan ini, kita akan melihat cara menyalin file dan membuat direktori target secara bersamaan, dengan satu perintah, di Linux.
Harap dicatat bahwa saya tidak berbicara tentang menggabungkan dua perintah. Misalnya, siapa pun dapat melakukan ini dengan menggabungkan dua perintah seperti di bawah ini:
$ mkdir -p destination && cp source_file destination
Tapi, ini bukan perintah tunggal. Di sini kita menggunakan dua perintah, yaitu mkdir
dan cp
. Ini sebenarnya adalah perintah satu baris. Sekarang izinkan saya menunjukkan cara melakukan tugas yang sama hanya menggunakan satu perintah.
Salin file dan buat direktori target secara bersamaan di Linux
Kita dapat melakukan ini dengan menggunakan tiga metode berbeda. Pertama kita akan melihat bagaimana melakukannya menggunakan install
perintah.
Metode 1 - menggunakan install
perintah
install
perintah menyalin file ke tujuan mana pun pilihan Anda di Linux. Ini khusus digunakan untuk tujuan ini dengan membangun sistem seperti automake
. Ini adalah bagian dari GNU coreutils, jadi Anda tidak perlu menginstalnya.
Untuk menyalin file dan membuat direktori tujuan secara bersamaan menggunakan install
perintah, cukup jalankan:
$ install -D source-file destination-directory
Contoh:
Perintah berikut menyalin file bernama sk.txt
ke Direktori target bernama ostechnix
. Harap dicatat bahwa direktori target tidak ada. Kami akan menyalin file dan membuat direktori tujuan pada saat yang sama dengan install
perintah seperti di bawah ini:
$ install -D sk.txt ostechnix/sk.txt
Verifikasi apakah file telah disalin ke ostechnix
direktori dengan mencantumkan isinya dengan ls
perintah:
$ ls ostechnix/
sk.txt
Lihat? Saya tidak membuat direktori target sebelumnya. Perintah install membuat direktori secara otomatis dan menyimpan file di dalamnya.
Berguna, kan? Memang! Ini adalah salah satu fitur yang berguna dari install
memerintah. Seseorang dapat menggunakan ini dalam skrip shell.
Ada beberapa keterbatasan dalam metode ini. Anda harus menyebutkan nama file sumber di akhir lokasi tujuan. Jika Anda tidak menentukan nama file, install
perintah tidak akan menyalinnya dan menampilkan kesalahan berikut:
$ install -D sk.txt ostechnix/
install: target 'ostechnix/' is not a directory: No such file or directory
Anda dapat menyalin satu file dalam satu waktu. Tidak ada cara untuk menyalin banyak file ke beberapa tujuan menggunakan install
perintah.
Kami juga dapat menyalin file dan mengubah kepemilikan, izin pada saat yang sama menggunakan install
perintah seperti yang dijelaskan dalam panduan berikut.
- Cara Menyalin File Dan Mengubah Kepemilikan, Izin Pada Saat Yang Sama
Untuk detail lebih lanjut tentang perintah install, lihat halaman maualnya.
$ man install
Metode 2 - menggunakan cp
perintah
Umumnya, kami menggunakan cp
perintah untuk menyalin file dari satu tempat ke tempat lain. cp
perintah memiliki opsi bernama --parents
yang memungkinkan kita untuk menyalin seluruh struktur direktori dari file sumber dan menyimpannya di tujuan.
Misalnya, katakanlah, sk.txt
file disimpan di ~/Downloads
direktori dan Anda ingin menyalinnya ke ~/Documents
direktori. Jika Anda menyalin file menggunakan cp
perintah dari ~/Downloads
ke ~/Documents
, file akan disimpan dalam struktur direktori seperti ini -> ~/Documents/Downloads/sk.txt
.
Mari kita lakukan secara real time dan lihat apa yang terjadi.
$ cp --parents Downloads/sk.txt ~/Documents/
Sekarang jalankan tree
perintah untuk memeriksa ~/Documents
isi direktori:
$ tree Documents/
Documents/
└── Downloads
└── sk.txt
1 directory, 1 file
Ingat kita tidak membuat direktori apapun di dalam ~/Documents
lokasi. --parents
pilihan cp
perintah mempertahankan struktur direktori file sumber.
Berbeda dengan install
perintah, Anda tidak perlu menentukan nama file di akhir direktori tujuan.
Ini tidak terkait langsung dengan topik kita. Namun, cp
perintah membuat direktori target secara otomatis yaitu mempertahankan struktur direktori file sumber.
Metode 3 - menggunakan rsync
perintah
Rsync
adalah solusi ideal untuk menyalin dan mencadangkan data antara direktori lokal dan jauh. Untuk menyalin file dan membuat direktori target pada saat menggunakan perintah rsync, jalankan:
$ rsync sk.txt ostechnix/
Di mana direktori bernama ostechnix
tidak harus ada. Rsync akan membuatnya secara otomatis dan menyimpan file sumber di dalamnya.
Di antara ketiga perintah ini, saya lebih suka install
memerintah. Karena, saya dapat membuat direktori bersarang (direktori di dalam direktori lain) menggunakan install
memerintah. cp
dan rsync
perintah hanya dapat membuat satu direktori, sejauh yang saya tahu. Mohon koreksi saya jika saya salah.
Bacaan terkait:
- Cara Menjaga Kepemilikan Dan Izin File Tetap Terjaga Saat Menyalin File Atau Direktori