GNU/Linux >> Belajar Linux >  >> Linux

Salin File Dan Buat Direktori Target Pada Saat Yang Sama

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

Linux
  1. Cara Membuat Alias ​​​​dan Menggunakan Perintah Alias ​​​​di Linux

  2. Cara Menyalin File Dan Mengubah Kepemilikan, Izin Pada Saat Yang Sama

  3. Temukan file dan direktori terbesar di Linux

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Bagaimana Menyalin File Dan Membuat Direktori Target Pada Saat Yang Sama?

  3. Salin dan chmod/chown secara bersamaan

  1. Salin file &direktori di Linux

  2. Perintah Untuk Membuat Direktori Target Bernomor Berurutan Dan Memindahkan File Batch?

  3. Ping dan tcpdump secara bersamaan