Saya memiliki pohon file besar. Beberapa file memiliki nama yang sama tetapi dalam kasus yang berbeda, misalnya, some_code.c
dan Some_Code.c
.
Jadi ketika saya mencoba untuk menyalinnya ke sistem file NTFS / FAT, ia bertanya apakah saya ingin mengganti file atau melewatkannya.
Apakah ada cara untuk secara otomatis mengganti nama file seperti itu, misalnya, dengan menambahkan (1)
nama file konflik (seperti Windows 7)?
sudo fdisk -l /dev/sda
), dan melakukantouch foo; touch Foo
dan diakhiri dengan 2 filefoo
danFoo
. Tapi saya tidak penasaran enogh untuk reboot ke Windows, untuk melihat bagaimana mereka terlihat di sana. Migth itu hanya menjadi FAT-masalah? Ah - Saya punya USB-Stick dengan FAT, dan bisa membuat sistem FAT di dalam file, ... - tolong tunggu sebentar. :)Jawaban:
Banyak alat GNU seperti
cp
,mv
dantar
mendukung pembuatan file cadangan ketika target ada. Artinya, ketika menyalinfoo
kebar
, jika sudah ada file yang dipanggilbar
, yang sudah adabar
akan diganti namanya, dan setelah salinanbar
akan berisi kontenfoo
. Secara default,bar
diubah namanya menjadibar~
, tetapi perilaku dapat dimodifikasi:Ada varian lain, seperti membuat cadangan bernomor hanya ketika sudah ada. Lihat manual coreutils untuk lebih jelasnya.
sumber
brew install coreutils
dan gunakan perintahgcp
sebagai gantinya.Saya mencoba
untuk menemukan kandidat yang memungkinkan, dan mcopy muncul.
menunjukkan opsi yang menjanjikan
-D clash-option
bukankah itu keren? Tapi tidak terlalu keren - tidak dijelaskan. Tetapi ada beberapa petunjuk untuk mtools.dvi, yang saya cari di sistem saya, tanpa hasil, dan melalui google, tanpa hasil, tetapi kemudian, dengan google, saya mencari langsungmcopy clash-option
dan menemukan situs ini .Saya membuat tes singkat
untuk menguji autorename dan targetdir
a
- alih-alih autorenaming, ia meminta saya untuk setiap file untuk diabaikan atau ditimpa, s bodoh itu ....Versi saya adalah
mtools-4.0.10
dan halaman bantuan adalah dari tahun 1996 - 15 tahun. Haruskah kita benar-benar kehilangan beberapa fitur, sementara itu?Saya akan membagi pekerjaan menjadi dua langkah:
find
, dan jalankan skrip itu untuk setiap file yang ingin Anda salin.Haruskah kita membantu dalam pendekatan ini? :)
Berikut ini skrip, untuk nama file autorename:
dan ini adalah permohonan ujian saya:
Catatan: -maxdepth, -name dan -type di mana digunakan untuk membatasi jumlah file yang terpengaruh secara dramatis. Saya tidak menguji skrip untuk struktur file yang lebih dalam, juga tidak ada yang kosong dalam nama file dan karakter funky lainnya seperti linefeed, pagefeed, dan sebagainya.
Saya menggunakan .1 karena tidak membuat masalah di sebagian besar perintah, sementara a (dan a) sering perlu masking.
sumber
Setidaknya tidak dengan GNU
cp
.Anda sangat disarankan untuk tidak memiliki nama file duplikat (mengabaikan kasus), mereka hanya akan menyebabkan Anda dunia yang sakit. Temukan daftar duplikat tersebut menggunakan
Kemudian secara manual ganti nama salah satu file untuk setiap baris jika output. Cobalah untuk menghindari membuat duplikat di masa mendatang.
sumber