Bir grup dosyayı adlarında Windows dosya yoluna benzeyen şekilde yeniden adlandırma


9

Dosya adı bozulan bir sürü dosyam var. Tüm dosya adları, Windows dosya dizinleri gibi görünen aynı başlangıca sahiptir. Sorun 700+ dosya var ve gerçekten geçip elle hepsini yeniden adlandırmak istemiyorum. Bunlar dosya adlarına örnektir (Not: Bunların hiçbirinin dosya dizinleri yoktur):

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
...

Önemli olan her dosyanın, G:some\really\long\file\path\then\the\istediğim dosya adından önce olması.

Yani yukarıdaki dosyaları gibi görünmesini istiyorum:

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

renameKomutu denedim ve başarılı olamadım. Linux ile hala yeniyim ve nasıl yapılacağından veya gerçekten ne yapılacağından emin değilim. Herhangi bir yardım mutluluk duyacağız.

Yanıtlar:


18

Sadece son ters eğik çizgiye kadar her şeyi kaldırdım 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)

-nDosyaları gerçekten yeniden adlandırmak için test ettikten sonra kaldırın .

notlar

  • -n hiçbir şey yapma, sadece ne değişeceğini yazdır
  • s/old/newyerine oldsahipnew
  • .* herhangi bir sayıda karakter
  • \\ İlk ters eğik çizgi ikincisinden kaçmaktır.
  • Normal ifade açgözlü olduğu için bu ifade .*\\önceki tüm ters eğik çizgileri de yiyor.
  • Son iki sınırlayıcı //boş olduğundan, arama bölümünde eşleşen her şey silinir

Sadece ilk satıra ihtiyacım var mı, yoksa her dosya için mi yapmam gerekiyor?
kingcobra1986

Sadece ilk satırı gerekir @ kingcobra1986 diğerleri sadece çıktı. *tüm dosyaları eşleştiriyor ancak bunu - yapmama izin ver G*- şimdi Ggeçerli dizinde başlayan tüm dosyalarla eşleşiyor ve hepsi üzerinde aynı anda çalışacak. Eğer birden fazla rehberde iseler bununla çeşitli şekillerde başa çıkabiliriz
Zanna

İşe yaradı. Bu çizgide tam olarak ne olduğunu açıklayabilir misiniz?
kingcobra1986

1
@ kingcobra1986 üzgünüm, notlar ekledim. Umarım net değilse, lütfen daha fazlasını istemekten çekinmeyin!
Zanna

Ha, .*\\ açgözlülükten beri kullanma fikrini seviyorum.*
Ziazis

10

Kabuk parametresi genişletmesinibash kullanarak bunu saf olarak yapabilirsiniz .

${file##*\\}(kesme-son-önek) dosya adının başlangıcından son \görülene kadar her şeyi kaldırır .

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

Yeniden adlandırma sonuçları:

‘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’

6

GUI çözümleri arıyorsanız , birçok toplu yeniden adlandırma uygulaması vardır. Xfce için varsayılan dosya yöneticisi olan Thunar'ı öneririm . Kullanışlı bir toplu yeniden adlandırma aracı ile birlikte gelir. Thunar'ı Terminal'de aşağıdaki komutu çalıştırarak yükleyebilirsiniz:

sudo apt-get install thunar

Muhtemelen Ubuntu Yazılımından da yükleyebileceksiniz.

Yardımcı programı kullanma

  1. Thunar'ı yükledikten sonra Toplu Yeniden Adlandırma yardımcı programını başlatın .
  2. + Simgesini tıklayın ve yeniden adlandırmak istediğiniz dosyaları ekleyin.
  3. Seçilen dosyalar listesinin hemen altındaki açılır kutuyu tıklayın ve Ara ve Değiştir'i seçin .
  4. In Arayış'ta: kutusuna girin G:some\really\long\file\path\then\the\(eğer kurtulmak istediğiniz kısmı), ayrılmak Değiştir: kutu boşaltın. Yeni Ad sütununda değişikliklerin önizlemesini görmelisiniz .
  5. Değişiklikleri uygulamak için Dosyaları Yeniden Adlandır düğmesine tıklayın.

Ayrıca & Arama Değiştir bu yarar destekleri aşağıdaki eylemleri:

  • Tarih / Saat Ekle
  • Ekle / Üzerine Yaz
  • Numaralama
  • Karakterleri Kaldır
  • Büyük harf küçük harf

nautilus için bir tane yok mu (sanırım var!)? Bu amaçla yeni bir dosya tarayıcısı yüklemenizi önermek aşırı derecede ağır görünüyor.
Zanna

@Zanna v3.22'de bir tane var, ama bence Ubuntu depolarında hala mevcut değil.
pomsky

2
Thunar oldukça kullanışlı ve diğer dosya tarayıcılarıyla iyi bir şekilde bir arada var gibi görünüyor, bu yüzden bu amaç için yüklemeye değer olabilir. Ancak Thunar'da toplu yeniden adlandırma işleminin nasıl yapılacağına ilişkin bir açıklama ile bu yanıtı genişletebilir misiniz ?
Eliah Kagan

1
@EliahKagan ve çok hafif
pomsky

Güzel bitti, şimdi upvote (Ben de test edebilirsiniz bir Xubuntu var :))
Zanna
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.