Dosya adlarından ve klasör adlarından toplu kaldırma karakteri


4

"<" Karakterini içeren çok sayıda klasör ve dosya oluşturduk.

Bu karakterleri toplu olarak kaldırmak mümkün müdür?

Yanıtlar:


4

Dosya ve klasör yeniden adlandırma için Name Mangler 3 kullanıyorum. Dışarıda ücretsiz seçenekler var, ancak Adı Mangler benim için $ 19.00'a değecek bir ton özellik sunuyor.

İşte MacUpdate üzerinde Ad Mangler birçok benzer programlara bağlantılar içerir.

  1. Name Mangler kurulduktan sonra başlat
  2. Yeniden adlandırmak istediğiniz tüm klasörleri, "Dosyaları ve Klasörleri Buraya Sürükle" yazan panele sürükleyin.
  3. Sağ tarafta "Bul ve Değiştir" i seçin
  4. "<" Girin
  5. "Şununla değiştir" in altında, "<" ile değiştirmek istediğiniz karakteri girin veya kaldırmak için boş bırakın
  6. "X öğelerinin x'in adını değiştir" i tıklayın

Name Mangler gibi bir aracı kullanmayı çok değerli kılan şeylerden biri, değişikliklerinizi geri alabilmeniz, değişikliklerin geçmişini görüntüleyebilmeniz ve ad değişikliği diğer dosyalarda çalıştırmayı gerçekten kolaylaştıran bir "damlacık" oluşturabilmenizdir. Bunların tümü ve çok karmaşık isimler oluşturmak için Regex'i kullanabilmek.

Ayrıca sorularınızı yanıtlayabileceğiniz ve bazı çok gelişmiş özellik ve yöntemlerin ele alınabileceği harika bir Ad Mangler Google Grubu da bulunmaktadır . Bana çok yardımcı oldular.


Bunu deneyeceğim, bekle!
Vinozio

Dosya ve klasörleri değiştirmek için bu uygulamayı çok yararlı buldum! Teşekkür ederim!
Vinozio

13

Terminal'de bunu oldukça basit ve hızlı bir şekilde yapabilirsiniz:

cd / path / to / start / yeniden adlandırma

find . -name '*\<*' | while read f; do echo mv "$f" "${f//\</}"; done

Yukarıdaki komut, aşağıdaki komutun "kuru çalıştırması" dır:

find . -name '*\<*' | while read f; do mv "$f" "${f//\</}"; done

Bu, <başlangıçta girdiğiniz yoldan başlayarak dosya ve klasörlerdeki art arda gelen karakterleri kaldıracaktır .

Sonuç:

mv ./<folder<test<   ./foldertest
mv ./<test3.txt      ./test3.txt
mv ./test2<.txt      ./test2.txt
mv ./test<test.txt   ./testtest.txt

Bu komutun biraz zaman alması mümkün mü? Kuru işi yapıyorum ve 5 dakika sonra hiç çıktı yok mu?
Vinozio

1
@Vinozio, Kaç tane dizin tarıyorsunuz? Çok değilse neredeyse ani olmalı. /Örneğin , başlarsanız biraz zaman alabilir. Komutu <, adında bir dosya / klasör bulunduğunu bildiğiniz bir dizinde kullanmayı deneyin ve ne yaptığını görün.
Ben

250 GB Veri içeren bir NAS'ta.
Vinozio

1
@PubliDesign: mv dosyaları silmez, onları taşır; Terminaldeki herhangi bir komutla lütfen ne yaptığınızı ve önceden bu tür şeylerin risklerini bilin. Gösterilen ilk komut "kuru çalıştırma" dır, yani herhangi bir dosyaya dokunmadığından, ne yaptığından emin olmak için önce onu uygulamanız gerekirdi. Eğer dosyalarının üzerine bir şekilde yazarsan, bu senin suçundan başka kimsenin suçu değil ...
l'L'l

1
@davewoodhall: "Bu, dosyalarımı silindi" nin gerçekten yararlı olduğuna inanıyor musunuz? - Onları sildin, belki de sorumluluk al! Bu soru neredeyse üç yıl önce cevaplandı, yaklaşık 10.000 görüşe sahip ve başka hiç kimse benzer bir şeyden şikayet etmiyor gibi görünüyor. Ne yazık ki bir yerde yol boyunca, üzgünüm ... berbat söyleyebilirim
l'L'l


1

Bunu bir kabuk betiğiyle (ücretsiz) kolayca yapabilirsiniz, örneğin:

!#/bin/ksh
for filedirname in `ls -1 *\<*` # Note ls -1(one) not the alphabet L
do
    NEW_NAME=$(echo "$filedirname" | sed 's/\<//g')
    mv "$filedirname" "$NEW_NAME"
    echo "Changed name from $filedirname to: $NEW_NAME"
done

bu -1gerçekten gerekli değildir (çıktı ekrana gönderilmezse yine de tek sütun çıktısı oluşturur), ayrıca for f in *\<*; doçalışması gerekir.
yokuş yukarı
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.