that : screenshot 13:25.png
Muhtemelen ":" nedeniyle bu dosyaları açmak için Windows mücadelesi adlı bir çok dosyam var .
Nasıl değiştirebilirim?
that : screenshot 13:25.png
Muhtemelen ":" nedeniyle bu dosyaları açmak için Windows mücadelesi adlı bir çok dosyam var .
Nasıl değiştirebilirim?
Yanıtlar:
Bir terminalde, cd
doğru dizine girip bunu çalıştırın.
rename 's/\:/-/g' *.png -vn
Bu , yeniden adlandırmayı önizleyecektir . O değiştirmelisiniz :
ile -
.
Bu doğru görünüyorsa, en n
baştan kaldırın ve ardından gerçek yeniden adlandırma işlemi yapılır.
Not : 17.04 Yukarıdaki Ubuntu sürümleri ile bulunmaz rename
, ancak kullanım yüzden, hala varsayılan depolarda mevcut olduğunu sudo apt install rename
bunu elde etmek
n
kolayca (veya ) kaldırabilirsiniz .
rename 's/\:/-/g; s/%28/ /g; s/%29//g' ...
İşte saf bir bash çözümü:
for i in *:*; do
mv "$i" "${i//:/_}"
done
${var//pattern/replacement}
Biçimi tüm oluşumları yerini alacak pattern
olan replacement
değişkeninde $var
. Bash'ın yayılma yetenekleri hakkında daha fazla bilgi için, buraya bakın .
Bunu birden fazla karakter için yapmak istiyorsanız, bunları bir karakter sınıfına yerleştirebilirsiniz. Yani, örneğin, tümünü değiştirmek için ;
, :
, =
, +
, %
, ,
alt çizgi ile, bunu yapabilirsiniz:
$ ls
1foo:bar 2foo:bar:baz 3foo;bar 4foo=bar 5foo%bar 6foo,bar 7foo+bar
$ for i in *; do mv "$i" "${i//[:;=%,+]/_}"; done
$ ls
1foo_bar 2foo_bar_baz 3foo_bar 4foo_bar 5foo_bar 6foo_bar 7foo_bar
Temel olarak, fikir şu [ ]
anlama geliyor any of the characters listed
. Böylece, değiştirmek istediğiniz tüm karakterleri karakter sınıfına yerleştirerek, hepsine aynı anda baş edilir.
İstediğiniz belirli karakterler için, bazılarının kaçması gerektiğinden işler biraz daha karmaşıktır (çünkü bu /
yana görmezden geliyorum * konu):
$ ls
1foo<bar 2foo>bar 3foo:bar 4foo\bar 5foo|bar 6foo*bar 7foo?bar 8foo"bar 9foo'bar
$ for i in *; do mv "$i" "${i//[<>:\\|*\'\"?]/_}"; done
$ ls
1foo_bar 2foo_bar 3foo_bar 4foo_bar 5foo_bar 6foo_bar 7foo_bar 8foo_bar 9foo_bar
Kaçtım unutmayın \
, '
ve "
bir ekleyerek \
her önüne.
Bir GUI'yi tercih ediyorsanız, pyrenamer'ı yükleyin:
sudo apt-get install pyrenamer
O zaman çalıştır:
pyrenamer
Desenler ve yeniden adlandırma formatları için onlarca seçeneğe sahiptir.
GUI'yi tercih ediyorum ama bir Nautilus Eklentisi, yani Nautilus Actions Extra :
sudo add-apt-repository ppa:nae-team/ppa
sudo apt-get update
sudo apt-get install nautilus-actions-extra
nautilus -q
(Bkz. Www.webupd8.org/2011/12/nautilus-actions-extra-pack-of-useful.html )
Ardından, yeniden adlandırılacak dosyaları seçip içerik menüsünden Yeniden Adlandır'ı tıkladığınızda, dosyaları yeniden adlandırmak için birçok seçenek sunulur.
renameutils
Paket olarak adlandırılan kullanışlı bir program vardır qmv
interaktif toplu yeniden adlandırma sağlar. Bir dizinde veya dosyalar listesinde çalıştırıyorsunuz ve dosya adlarını içeren geçici bir metin dosyası oluşturuyor ve favori düzenleyicinizi başlatıyor. Editörden çıktığınızda, değiştirdiğiniz dosya adları buna göre yeniden adlandırılır. qmv
toplu iş yeniden adlandırma sorununu bir metin düzenleme sorununa dönüştürür.
Bu durumda, qmv -f do *:*
iki nokta üst üste içeren tüm dosyaların adlarını ve ardından :%s/:/_/g
Vim'deki komutu (veya kullandığınız düzenleyicide karşılık gelen bir ara ve değiştir) kullanabilirsiniz.
Bu -f do
seçenek, metin dosyasının biçimini yalnızca hedef dosya adına sahip olacak şekilde ayarlar; bu da ara ve değiştir işini kolaylaştırır. Varsayılan biçim, her satırda dosya adının iki kopyasına sahiptir ve yalnızca ikincisini düzenlersiniz. Bu, dosyadaki satırları sildiyseniz veya yeniden düzenlediyseniz, doğru olanı yapmasına izin verir, ancak her zaman kolay değildir. Başka formatlar da var.
İle qmv
, bunun yerine boru gibi seçtiğiniz bir komutla, aracılığıyla oluşturulan dosyayı seçebilir sed
etkileşimli yeteneği istemiyorsanız.
Ve burada (tümü?) Windows ile uyumlu olmayan karakterleri seçilen tüm dosya adlarında kısa çizgi ile değiştiren bir Nautilus Komut Dosyası ( terdon ;-) cevabına göre)
#!/bin/bash
filesall=""
while [ $# -gt 0 ]
do
files=`echo "$1" | sed 's/ /\?/g'`
filesall="$files $filesall"
shift
done
for i in $filesall; do mv "$i" "${i//[<>:\\|*\'\"?]/-}"; done
Thunar (XFCE dosya yöneticisi), dosyaların toplu olarak yeniden adlandırılması için güzel bir yapı özelliğine sahiptir. Karakterleri kaldırma / değiştirme, arama ve değiştirme, dosyaları numaralandırma ve daha pek çok seçeneğe sahiptir.
Thunar'ı yükleyin:
sudo apt-get install thunar
Thunar'ı açın, dosyalarınıza göz atın, onları seçin ve 'yeniden adlandır'ı seçin (bağlam menüsünden veya F2)
@echo off
echo.
echo. How many Characters Do You Want To Remove
echo.
echo. From The End Of The FileName ?
echo.
echo.
set /p variable=" > "
setlocal enabledelayedexpansion
for /f "delims=" %%a in (' dir /b /a-d *.mp3') do (
set oldName=%%a
Set newName=!oldName:~0,-%variable%!.mp3
Ren "!oldName!" "!newName!"
)
exit