Misalkan saya memiliki folder yang berisi beberapa file dan beberapa folder (file dapat dari jenis apa pun). Dan saya ingin memindahkan / menyalin beberapa file dan folder menggunakan mv
/ cp
perintah. Apakah ada cara, sehingga saya bisa memilih beberapa dari mereka secara acak, sama seperti kita melakukan seleksi menggunakan tombol Ctrl, dan apakah memindahkan / menyalin menggunakan terminal? Saya tidak dapat menggunakan wildcard, maupun ekspresi reguler, karena saya ingin memilih file dari jenis yang berbeda, dan nama mereka memiliki sejumlah kecil kesamaan.
command-line
bash
cp
mv
MikhilMC
sumber
sumber
cp -t /dest/ file{1,2,3}
atau untuk rentangcp -t /dest/ file{1..3}
. Ia bekerja untuk argumen dan kombinasi non-numerik, misalnyacp -t /dest/ f{ile,ly}.{csv,txt}
dijalankancp -t /dest/ file.txt file.csv fly.txt fly.csv
. Berhati-hatilah dengan menimpa hal-hal jika posisi itu penting, tetapi menurut saya itu berguna.Jawaban:
Jika Anda ingin memindahkan atau menyalin semua file ke direktori yang sama, Anda dapat menggunakan
-t
opsicp
ataumv
, tetapi ini berarti Anda harus mengetik / memasok setiap nama file sebagai argumen. Ini bekerja dengan cara berikut, dengan banyak file sebagai argumen yang Anda suka:atau
Ini cukup melelahkan, tetapi mengetikkan nama file dapat dibuat lebih mudah menggunakan tab Bash .
Sebagai alternatif, skrip bash berikut akan menemukan semua file dalam direktori, diberikan sebagai argumen pertama, dan menyalin file yang dipilih ke direktori tujuan, diberikan sebagai argumen kedua.
Ia memeriksa setiap file dan menanyakan apakah Anda ingin menyalin file itu. Di akhir pemilihan file, ia memperlihatkan daftar file yang dipilih dan menanyakan apakah Anda ingin menyalinnya ke direktori tujuan:
Berhati-hatilah karena tidak ada kesalahan saat memeriksa skrip ini tentang apakah direktori tujuan ada, atau Anda telah memasukkan argumen yang benar.
sumber
Berikut ini skrip yang memilih sekumpulan file / direktori acak untuk disalin. Itu dapat menangani nama file yang sewenang-wenang, bahkan yang berisi baris baru dan spasi. Simpan skrip sebagai
~/bin/randomCopy.sh
, buat itu dapat dieksekusi (chmod a+x ~/bin/randomCopy.sh
) dan kemudian jalankan, berikan direktori sumber sebagai argumen pertama, direktori target sebagai yang kedua dan jumlah file / direktori (skrip tidak membedakan antara file dan direktori, seperti yang Anda minta) untuk disalin. Misalnya, untuk menyalin 5 file acak atau direktori dari/foo
ke/bar
:Naskah:
Perhatikan bahwa ini akan menimpa file yang ada jika ada dengan nama file yang sama ada di direktori target.
sumber
Mungkin coba gunakan sesuatu seperti Midnight Commander ? Ini adalah aplikasi konsol yang menyediakan fitur serupa dengan File Manager Nautilus grafis.
sumber
Baru-baru ini saya menemukan solusi yang efektif untuk masalah ini menggunakan xargs.
Kemudian ketik
Ctrl + C
. Ini pasti akan berhasil. Saya sudah mengujinya. Dengan metode ini kita dapat memilih file seperti menggunakanCtrl
tombol dalam mode grafik, dan melakukan salin / pindah / hapus.sumber