Cara mengganti nama grup file dengan apa yang tampak seperti jalur file Windows dalam namanya

9

Saya mendapat banyak file dengan nama file kacau. Semua nama file memiliki awal yang sama dengan direktori file windows. Masalahnya adalah ada 700+ file dan saya benar-benar tidak ingin melewatinya dan secara manual mengubah nama mereka semua. Ini adalah contoh nama file (Catatan: Tidak ada yang memiliki direktori file):

G:some\really\long\file\path\then\the\name1.jpg
G:some\really\long\file\path\then\the\name2.png
G:some\really\long\file\path\then\the\filename.txt
G:some\really\long\file\path\then\the\file_name.mov
...

Yang terpenting adalah setiap file memiliki G:some\really\long\file\path\then\the\sebelum nama file yang saya inginkan.

Jadi saya ingin file di atas terlihat seperti:

name1.jpg
name2.png
filename.txt
file_name.mov

Saya sudah mencoba renameperintah dan tidak berhasil. Saya masih baru dengan Linux dan benar-benar tidak yakin bagaimana cara melakukannya atau benar-benar apa yang harus google. Bantuan apa pun akan dihargai.

kingcobra1986
sumber

Jawaban:

18

Saya baru saja menghapus semuanya hingga backslash terakhir rename

$ rename -n 's/.*\\//' G*
rename(G:some\really\long\file\path\then\the\file_name.mov, file_name.mov)
rename(G:some\really\long\file\path\then\the\filename.txt, filename.txt)
rename(G:some\really\long\file\path\then\the\name1.jpg, name1.jpg)
rename(G:some\really\long\file\path\then\the\name2.png, name2.png)

Hapus -nsetelah pengujian untuk benar-benar mengganti nama file.

Catatan

  • -n jangan lakukan apa-apa, cukup cetak apa yang akan diubah
  • s/old/newganti olddengannew
  • .* sejumlah karakter apa pun
  • \\ Backslash pertama adalah melarikan diri dari yang kedua.
  • Karena regex rakus, ungkapan ini .*\\memakan semua garis miring terbalik sebelumnya juga.
  • Karena dua pembatas terakhir //kosong, semua yang cocok di bagian pencarian dihapus
Zanna
sumber
Apakah saya hanya perlu baris pertama, atau apakah saya perlu melakukannya untuk setiap file?
kingcobra1986
Anda hanya perlu baris pertama @ kingcobra1986 yang lain hanya output. *cocok dengan semua file, tetapi izinkan saya mengubahnya untuk G*dilakukan - jadi sekarang ini cocok dengan semua file yang dimulai dengan Gdi direktori saat ini dan akan bekerja pada mereka semua sekaligus. Jika mereka ada di banyak direktori, kita juga bisa mengatasinya dengan berbagai cara
Zanna
Itu berhasil. Bisakah Anda menjelaskan apa yang sebenarnya terjadi di baris itu?
kingcobra1986
1
@ kingcobra1986 maaf, saya menambahkan catatan. Semoga ini jelas, jika tidak, jangan ragu untuk meminta lebih banyak!
Zanna
Ha, saya suka ide untuk menggunakan .*\\ sejak serakah.*
Ziazis
10

Anda dapat melakukan ini secara murni bashmenggunakan ekspansi parameter shell .

${file##*\\}(cut-up-to-last-prefix) menghapus semua mulai dari awal nama file hingga yang terakhir \terlihat.

for file in *; do
    mv -v "$file" "${file##*\\}";
done

Ganti nama hasil adalah:

‘G:some\\really\\long\\file\\path\\then\\the\\file_name.mov’ -> ‘file_name.mov’
‘G:some\\really\\long\\file\\path\\then\\the\\filename.txt’ -> ‘filename.txt’
‘G:some\\really\\long\\file\\path\\then\\the\\name1.jpg’ -> ‘name1.jpg’
‘G:some\\really\\long\\file\\path\\then\\the\\name2.png’ -> ‘name2.png’
αғsнιη
sumber
6

Jika Anda mencari solusi GUI , ada banyak aplikasi penggantian nama massal. Saya akan menyarankan Thunar , yang merupakan manajer file default untuk Xfce. Itu datang dengan alat penggantian nama massal berguna. Anda dapat menginstal Thunar dengan menjalankan perintah berikut di Terminal:

sudo apt-get install thunar

Anda mungkin dapat menginstal dari Perangkat Lunak Ubuntu juga.

Cara menggunakan utilitas

  1. Setelah menginstal Thunar, luncurkan utilitas Ubah Nama Massal .
  2. Klik ikon + dan tambahkan file yang ingin Anda ganti namanya.
  3. Klik pada kotak drop-down tepat di bawah daftar file yang dipilih dan pilih Cari & Ganti .
  4. Di kotak Cari Untuk: masukkan G:some\really\long\file\path\then\the\(bagian yang ingin Anda singkirkan), biarkan kotak Ganti Dengan: kosong. Anda harus melihat pratinjau perubahan di kolom Nama Baru .
  5. Untuk menerapkan perubahan, klik tombol Ubah Nama File .

Selain Cari & Ganti , utilitas ini mendukung tindakan berikut:

  • Masukkan Tanggal / Waktu
  • Sisipkan / Timpa
  • Penomoran
  • Hapus Karakter
  • Huruf Besar / Huruf Kecil
pomsky
sumber
bukankah ada satu untuk nautilus (saya pikir ada!)? Tampaknya agak berlebihan menyarankan untuk memasang peramban file baru untuk tujuan ini.
Zanna
@Zanna Ada satu di v3.22, tapi saya pikir masih belum tersedia di repo Ubuntu.
pomsky
2
Thunar sangat berguna dan tampaknya hidup berdampingan dengan baik dengan browser file lainnya, jadi saya pikir mungkin bermanfaat untuk menginstalnya untuk tujuan ini. Tetapi dapatkah Anda memperluas jawaban ini dengan penjelasan tentang cara melakukan penggantian nama massal di Thunar?
Eliah Kagan
1
@EliahKagan dan ringan juga
pomsky
Bagus sekali, sekarang saya dapat meningkatkan (saya punya Xubuntu saya juga bisa mengujinya :))
Zanna