Adlarını Windows dostu yapmak için dosyaları / klasörleri özyinelemeli olarak nasıl yeniden adlandırabilirim?


11

Dosya adlarında Windows'un kabul etmediği (çoğunlukla ":" ve "*", ancak muhtemelen diğerleri) çeşitli karakterlere sahip bir Ubuntu kutusunda bir sürü dosyam var.

Bunların yeniden adlandırılmasını ve bir Windows makinesine taşınmasını sağlamanın en kolay yolu nedir? Bu karakterleri "[iki nokta üst üste]" ve "[yıldız]" gibi bir şeyle değiştirmek sorun değil.


1
Linux altında bile bu tür isimlerden kaçınmalısınız (özellikle *).
cYrus

4
@cYrus Dosyaları nasıl ele aldığınıza bağlıdır. Bunun sadece kodlama ve kabuklarda bir sorun olduğunu düşünüyorum. OS X'deyim ve yasak olan tek karakter :, ki bu yeterince kötü. Belgeleri içeriklerinden sonra adlandırma yararlıdır ve makale adı soru ile bitiyorsa dosya adı da kullanılmalıdır.
Daniel Beck

@cYrus ve ben, benim yazılımımda, ama bazı yazılım olmayan insanlar tarafından yazılmıştır. Örneğin, qmail: neredeyse oluşturduğu her dosya adında şunu kullanır:
RomanSt

@Daniel Beck: Tabii, ama ne yazık ki bu isimleri destekleyen bir dosya sistemine sahip olmak, her şeyi karıştıran programları kullanabileceğiniz için yeterli değil. Boşluk bile kullanmıyorum.
cYrus

2
@Steven iyi soru! Bence Windows biraz daha kullanışlı olacak, çünkü birisi Windows'ta dosyaları alıyor ve bu platformda düzeltmek zorunda kalıyor.
Peltier

Yanıtlar:


4

Bir göz atın Glindra yeniden adlandırma ve detoks .

Glindra dosya yardımcı programları Windows veya Linux'a yüklenebilir. Windows'ta dosya adlarını temizleme örnekleri:

rena *.* -portable

rena *.* -safe
  • -güvenli Alt
    çizgi (tire) ile alt çizgi çizer.
    Boşlukları daraltır.
    * ?: [] "<> | () {} gibi sorunlu karakterleri alt çizgi ile eşler.
  • -portable
    -safe ile aynı temizleme işlemlerini gerçekleştirir ve ek olarak:
    Latin 1 alfabesinin üst yarısından tüm 8 bit karakterleri makul 7 bit yedek karakterlerle eşler.
    Tek tırnak işareti karakterlerini '' ´ alt çizgiyle eşler.

Kaynak: Unix / Linux / POSIX Dosya Adlarını Düzeltme: Kontrol Karakterleri (Newline gibi), Öncü Çizgiler ve Diğer Sorunlar



Bu David Wheeler'ın harika bir rütbesi! Özellikle, JungleDisk'in "~ \ irina" adlı bir dizine cd yapmaya çalıştıktan sonra klavyemi bashed ettikten sonra. Sekme tamamlamanın üzerinde çalışıp çalışmadığını tahmin etmek ister misiniz? ...
RomanSt

1
Detox, Windows dosyalarını Unix dostu yapmak içindir, tersi değil.
endolith

3
@DennisWilliamson - Glindra (Windows için) geçersiz dosya adlarına sahip karakterleri yeniden adlandıramıyor gibi görünüyor. G:\spc>rena.exe -safe -portable *.txtçıkışlar[FATAL-ERROR] Filename syntax error: aa:a.txt
Steven

1
Linux'a giderken sözdizimindeki değişikliği, yani rena '*.*' -portableyinelemeli rena '***/*.*' -portableolarak Linux'taki gibi bir şeyi kullanın . Ve yeniden adlandırmanın Windows üzerinde değil Linux'ta yapılması gerektiğine inanıyorum.
holroy

4

Recuva'yı deneyin .

Windows dostu olmayan dosya adlarını işleyen tek Windows yardımcı programıdır.

Silinmemiş dosyalar için taramayı etkinleştirin (hasarlı veya yeniden biçimlendirilmiş disklerden kurtarma için) ve klasörünüzü tarayın. Geri yüklendiğinde, Klasör yapısını geri yükle'yi etkinleştirin . Recuva, düşmanca dosya adlarını "santitize ederken" tüm dizini etkili bir şekilde "başka bir konuma" kopyalayacaktır.


1

Linux'ta ve hiçbir şeyi test etmeden, birinin aşağıdaki gibi tek gömlek kullanabileceğine inanıyorum.

Bir karakteri değiştirmek için:

find . -type f -exec rename 's/:/\[colon\]/g' {} +
find . -type f -exec rename 's/\*/\[asterisk\]/g' {} +

Ve son olarak alfasayısal olmayan tüm karakterleri kaldırmak için:

find . -type f -exec rename 's/[^A-Za-z0-9._]//g' {} +

Bunun, pencerelerin diğer tüm yasadışı karakterleriyle genişletilmesi gerektiğini unutmayın, yani<>:"/\|?*
holroy

0

Dosyalarınız zaten bir NTFS birimindeyse, Windows'ta chkdisk'i çalıştırmanın sorunu "çözdüğü" anlaşılıyor. Ne yazık ki, rahatsız edici dosyaları silerek öyle görünüyor.


0

İlk iki cevabın yanı sıra pyRenamer (GUI) kombinasyonu ile başardım. Linux altında, klasör adlarındaki (dizinlerde) boşlukları daraltmak için pyRenamer kullandım - boşluğu hiçbir şeyle değiştirmeden - böylece diğer programlar (Glindra yeniden adlandır) tekrarlı olarak çalışabilir (biri alt çizgi yerleştirebilir). Dosyalardan, yerden tasarruf etmek için bazı pencere kabul edilebilir karakterler veya kelimeler çıkardım ve dosya adlarında da benzer şekilde daraltılmış alanlar. Sonra Windows olmayan karakterleri çıkarmak için rena koştum, bir flash sürücüye kaydedildi ve daha sonra Recuva'yı Windows altındaki bir klasöre 'geri yüklemek' için kullandım. Recuva, bir dosya yolunun çok uzun olup olmadığını belirtir (ve ayrıca pencere olmayan karakterleri de kaldırır). Henüz Windows maksimum sınırı altında olup olmadığını görmek için dosya adlarının yolunu kontrol eden bir araç bulamadım (veya bazı izinlere izin vermek için 240 diyelim).

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.