Cukup salin beberapa file sekaligus dari baris perintah
Ada beberapa cara Anda bisa mencapainya. Cara termudah yang saya lihat adalah menggunakan yang berikut ini.
cp /home/usr/dir/{file1,file2,file3,file4} /home/usr/destination/
Sintaks menggunakan perintah cp diikuti oleh path ke direktori file yang diinginkan terletak di dengan semua file yang ingin Anda salin dibungkus dengan tanda kurung dan dipisahkan dengan koma.
Pastikan untuk mencatat bahwa tidak ada spasi di antara file. Bagian terakhir dari perintah /home/usr/destination/
,, adalah direktori tempat Anda ingin menyalin file.
atau jika semua file memiliki awalan yang sama tetapi ujung yang berbeda Anda bisa melakukan sesuatu seperti ini:
cp /home/usr/dir/file{1..4} ./
Di mana file1, file2, file3 dan file4 akan disalin.
Dari cara Anda mengucapkan pertanyaan, saya yakin inilah yang Anda cari, tetapi sepertinya Anda juga mencari perintah untuk membaca dari daftar file dan menyalinnya ke direktori tertentu. Jika demikian, beri tahu saya dan saya akan mengedit jawaban saya.
Berurusan dengan duplikat dengan python
Jadi saya menulis skrip python kecil yang saya percaya harus menyelesaikan pekerjaan. Namun, saya tidak yakin seberapa baik Anda berpengalaman dalam python (jika berpengalaman sama sekali) jadi saya akan mencoba menjelaskan cara menggunakan skrip ini sebaik mungkin dan tolong tanyakan sebanyak mungkin pertanyaan tentangnya sesuai kebutuhan.
import os,sys,shutil
### copies a list of files from source. handles duplicates.
def rename(file_name, dst, num=1):
#splits file name to add number distinction
(file_prefix, exstension) = os.path.splitext(file_name)
renamed = "%s(%d)%s" % (file_prefix,num,exstension)
#checks if renamed file exists. Renames file if it does exist.
if os.path.exists(dst + renamed):
return rename(file_name, dst, num + 1)
else:
return renamed
def copy_files(src,dst,file_list):
for files in file_list:
src_file_path = src + files
dst_file_path = dst + files
if os.path.exists(dst_file_path):
new_file_name = rename(files, dst)
dst_file_path = dst + new_file_name
print "Copying: " + dst_file_path
try:
shutil.copyfile(src_file_path,dst_file_path)
except IOError:
print src_file_path + " does not exist"
raw_input("Please, press enter to continue.")
def read_file(file_name):
f = open(file_name)
#reads each line of file (f), strips out extra whitespace and
#returns list with each line of the file being an element of the list
content = [x.strip() for x in f.readlines()]
f.close()
return content
src = sys.argv[1]
dst = sys.argv[2]
file_with_list = sys.argv[3]
copy_files(src,dst,read_file(file_with_list))
Script ini harus relatif mudah digunakan. Pertama, salin kode di atas ke dalam program gedit (harus diinstal sebelumnya di Ubuntu) atau editor teks lainnya.
Setelah itu selesai, simpan file sebagai move.py di direktori home Anda (bisa berupa direktori apa saja tetapi untuk kemudahan pengajaran, cukup gunakan direktori home) atau tambahkan direktori file yang terkandung di dalam PATH Anda. Kemudian cd
ke direktori home Anda (atau direktori apa pun yang Anda simpan move.py) dari terminal dan ketikkan perintah berikut:
python move.py /path/to/src/ /path/to/dst/ file.txt
Ini harus menyalin semua file yang terdaftar dari direktori sumber ke direktori tujuan dengan duplikat mengambil format pic (1) .jpg, pic (2) .jpg dan sebagainya.
file.txt harus berupa file yang mencantumkan semua gambar yang ingin Anda salin dengan setiap entri pada barisnya masing-masing.
Tidak mungkin skrip ini mempengaruhi direktori sumber, namun pastikan untuk memasukkan jalur yang benar ke direktori sumber dan tujuan dan yang terburuk yang bisa terjadi adalah Anda menyalin file ke direktori yang salah.
Catatan
- Script ini mengasumsikan bahwa semua gambar asli berada di direktori yang sama. Jika Anda ingin memeriksa sub direktori juga skrip perlu dimodifikasi.
- Jika Anda secara tidak sengaja salah ketik nama file, skrip akan memuntahkan kesalahan
"file tidak ada" dan meminta Anda untuk "tekan enter" untuk melanjutkan dan skrip akan terus menyalin sisa daftar.
- Jangan lupa
/
jejak di kedua jalur ke
direktori sumber dan jalur ke direktori tujuan. Kalau tidak, skrip akan membalas kesalahan Anda.
cp -rp /copying/from/{folder1/,folder2/,folder3/} path/to/folder
manap
untuk menyalin izin folder.