Çok sayıda dosya isimini aynı anda değiştirmek istiyorum.

Başlatan karmic0, 11 Nisan 2016 - 22:03:27

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

karmic0

Merhaba. Kaydettiğim bazı web sayfalarında; "?" ve "|" gibi karakterler var. Bu karakterleri içeren dosyalar fat dosya sisteminde olan USB belleklere yedekleme sırasında geçersiz olarak algılanıp uyarı veriyor ve kopyalanamıyor.

Dosya isimlerindeki bu karakterleri toplu olarak silmek veya değiştirmek istiyorum. Bir program var mı veya terminalden nasıl yapabilirim?

Xubuntu 12.04 kullanıyorum.


illedelinux

Onun nedeni kullandıgın Mousepad adlı metin editöründendir.
Onun yerine Leafpad kullan, sorun kalmaz.

sudo apt-get install leafpad
GNU/Linux kullanmıyorum, onu yaşıyorum...

yazilimci_adam

Şöyle yapabilirsiniz:

rename -v 'y/#AFTA*.PPT/HAFTA*.PPT/' *

Bu sayede düzenlemiştim ben. Benim düzenlediğim dosya isimleri #AFTA1-2-3-4-5.PPT şeklindeydi. Yeni hali ile HAFTA1-2-3-4 oldu. Yukarıdaki rename komutu yanılmıyorsam Perl ile geliyordu. Örneğin sizde şöyle olabilir:

rename -v 'y/ESKI_DOSYA_KARAKTERLERLE_ADI/YENI_DOSYA_ADI/' *

Buradaki ESKI_DOSYA_KARAKTERLE_ADI ise sizin o ? ya da | karakterler olabilir. Örnek ?s?rmal?k kedi videolar? olabilir.

karmic0

Alıntı yapılan: yazilimci_adam - 11 Nisan 2016 - 23:07:18
Şöyle yapabilirsiniz:

rename -v 'y/#AFTA*.PPT/HAFTA*.PPT/' *

Bu sayede düzenlemiştim ben. Benim düzenlediğim dosya isimleri #AFTA1-2-3-4-5.PPT şeklindeydi. Yeni hali ile HAFTA1-2-3-4 oldu. Yukarıdaki rename komutu yanılmıyorsam Perl ile geliyordu. Örneğin sizde şöyle olabilir:

rename -v 'y/ESKI_DOSYA_KARAKTERLERLE_ADI/YENI_DOSYA_ADI/' *

Buradaki ESKI_DOSYA_KARAKTERLE_ADI ise sizin o ? ya da | karakterler olabilir. Örnek ?s?rmal?k kedi videolar? olabilir.

Verdiğiniz bilgiler için çok teşekkür ediyorum.

rename -v 'y/*|*/*1*/' * bu şekilde yazdım, klasör ve html dosyalarının isimlerindeki bütün | karakterlerini 1 yaptı.

Ancak başka bir sorun var; bu komut sadece sorunlu karakterlerin bulunduğu klasörün içinde ikien işe yarıyor. Ben web sayfalarını farklı isimlerdeki klasörler içine kayıt ettim. Aynı komutu /İndirilenler klösörünün içindeki tüm klasörlerin içindeki dosyalara aynı anda nasıl uygulayabilirim? Bu şeklide bine yakın klasör var...

heartsmagic

Amaç, bu bozuk karakterleri doğrusu ile düzeltmek değilse eğer bu iş için sürekli olarak kullandığım detox aracını önerebilirim.

sudo apt-get install detox
detox -r ilgili_dizin/*
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

burakbs

Thunar toplu yeniden adlandırma programı da işini görür sanırım
Yaşama odaklan, ölüme razı ol..

bugra9

Alıntı Yap
rename -v 'y/*|*/*1*/' * bu şekilde yazdım, klasör ve html dosyalarının isimlerindeki bütün | karakterlerini 1 yaptı.

Ancak başka bir sorun var; bu komut sadece sorunlu karakterlerin bulunduğu klasörün içinde ikien işe yarıyor. Ben web sayfalarını farklı isimlerdeki klasörler içine kayıt ettim. Aynı komutu /İndirilenler klösörünün içindeki tüm klasörlerin içindeki dosyalara aynı anda nasıl uygulayabilirim? Bu şeklide bine yakın klasör var...

Aşağıdaki komut işini görmesi lazım.
for f in $(find -name "*|*" | sort -n -r | cut -f 1); do f2=$(basename $f);f3=$(dirname $f);mv $f $f3/${f2/|/1}; done
Bulunduğun klasörün altındaki tüm dosya ve klasörlerin isimlerindeki | karakterini 1 ile değiştirir.

Uyarı: Tam test etmedim. Önce küçük bir alanda test et ki sonradan tüm dosyaların uçmasın.

karmic0

Yardımlarınızı için çok teşekkür ediyorum.

heartsmagic, detox söylediğiniz gibi bütün karakterleri düzeltti. Tam benim istediğim şeyi yaptı, teşekkürler.

Şimdi yeni bir sorunla karşı karşıyayım; gerek ilk yöntemle gerekse detox aracıyla .htm dosyası ve bağlı bulunduğu klasör ismi aynı şekilde değişiyor fakat web sayfalarındaki resimler .html dosyasında bağlı bulunduğu klasörün eski ismi ile adreslendiğinden resimler doğal olarak açılmıyor :( bunun için önerebileceğiniz bir araç var mı?

heartsmagic

Karışık bir işe girişmiş gibisin. Web sayfalarındaki isimler de bozuk şekilde mi? Bir örnek vermen mümkün mü?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

karmic0

Web sayfalarındaki isimler düzgün. Sadece resim adresleri kayıt edildiği sırada klasörün ismi neyse ona göre adresleniyor. İsimlerdeki "?" karakteri gittiği zaman html dosyasındaki ismi değişmediğinden resimler açılmıyr. Örneğin aşağıdaki gibi;

Tarayıcıda resme bak denince çıkan adres:

file:///home/linux2/İndirilenler/nbeyin/El Yazısı Neden (Hala) Daha İyidir%3F - [n]Beyin_dosyalar/writing-e1454941312819.jpg

html dosyasının içeriğindeki adresi bu şekilde:

<img src="El%20Yaz%C4%B1s%C4%B1%20Neden%20%28Hala%29%20Daha%20%C4%B0yidir%3F%20-%20%5Bn%5DBeyin_dosyalar/writing-e1454941312819.jpg" style="width:100%;height:auto; margin-bottom: 10px;">

html dosyası ve klasörün ismi bu:

El Yazısı Neden (Hala) Daha İyidir? - [n]Beyin_dosyalar

Sanırım dediğiniz gibi biraz zor bir işe girişmişim. Ama isminde | ? gibi karakterler olan web sayfaları ne usb belleğe aktarılabiliyor nede Windows'ta açılabiliyor. Taşınabilir veya sabit diske kopyalanıyor ama orada da mesela Linux'ta iken bir web sayfasını Firofox ile kayıt ettim ve isminde bahsettiğim karakterler var; Windows'ta Firefox dahil hiçbir tarayıcı açamıyor, tanınmıyor. Böyle bir durum var işte.

bugra9

"Sublime Text" yazılımında ctrl+shift+f tuşlarına basarsan birden çok dosya içerisinde topluca bul-değiştir yapabileceğin bir arayüz çıkacaktır. Onu kullanarak istediğin dosyaların içerisindeki istemediğin karakterleri başkalarıyla tek hamlede değiştirebilirsin.