Jednym ze sposobów szybkiej zmiany nazw plików w systemie Windows jest
F2 > Rename > Tab (to next file) > Rename ...
Ale w Ubuntu / Nautilus nie mogę przejść do następnego pliku. Ale w Linuksie myślę, że musi istnieć alternatywa dla wiersza poleceń.
Czasami jednak potrzebuję większej kontroli nad sposobem zmiany nazw określonych plików. W takim przypadku być może lepiej będzie można przejść do następnego pliku
command-line
rename
Jiew Meng
źródło
źródło
Odpowiedzi:
Używam
rename
cały czas. Jest to dość proste, ale mam nadzieję, że znasz podstawowe wyrażenia regularne:To zastąpi ciąg
SEARCH
zREPLACE
każdym pliku (to znaczy*
). Te/g
środki globalne, więc jeśli miałSEARCH_SEARCH.jpg
, to by zostać zmienionaREPLACE_REPLACE.jpg
. Gdybyś tego nie/g
zrobił, zastąpiłby go tylko raz, a więc teraz nazwanyREPLACE_SEARCH.jpg
. Jeśli chcesz,/i
aby wielkość liter nie była rozróżniana, dodaj (to byłoby/gi
lub/ig
na końcu).Dzięki wyrażeniom regularnym możesz zrobić znacznie więcej.
Zauważ, że
rename
jest to polecenieprename
(inaczej Perlrename
), które obsługuje pełne wyrażenia regularne Perla. Jest inny,rename
który wykorzystuje wzorce i nie jest tak potężny.prename
Kiedyś był instalowany domyślnie na Ubuntu (wraz z Perlem), ale teraz możesz zrobić:Oto kilka przykładów:
Prefiks
Dodaj :
document.pdf
przemianowany naMyPrefix_document.pdf
Usuń :
Możesz także usunąć niechciane ciągi. Załóżmy, że miałeś 20 plików MP3 o nazwach podobnych
CD RIP 01 Song.mp3
i chciałeś usunąć część „CD RIP” i chciałeś usunąć ją ze wszystkich za pomocą jednego polecenia.CD RIP 01 Song.mp3
do01 Song.mp3
Zwróć uwagę na dodatkowe miejsce w środku
'^CD RIP '
, bez tego miejsca wszystkie pliki miałyby spację jako pierwszy znak pliku. Zauważ też, że zadziała to bez^
znaku, ale pasowałobyCD RIP
do dowolnej części nazwy pliku. Te^
gwarancje to tylko usuwa znaki, jeśli są one początek pliku.Przyrostek
Dodaj :
document.pdf
przemianowany nadocument.pdf_MySuffix
Zmień :
zmieni się
Something.pdf
wSomething.doc
. (Powodem odwrotny ukośnik jest.
to wieloznaczny w regexp więc.pdf
meczówqPDF
natomiast\.pdf
tylko pasuje dokładnie ciąg.pdf
. Również bardzo ważne jest, aby pamiętać, że jeśli nie jesteś zaznajomiony z BASH, należy umieścić backslashy w apostrofach! Nie można pominąć cytaty lub użyj podwójnych cudzysłowów, albo bash spróbuje je przetłumaczyć. Bash\.
i"\."
równa się.
. (Ale używane są podwójne cudzysłowy i odwrotne ukośniki, na przykład „\ n” dla nowej linii, ale ponieważ"\."
nie jest prawidłową sekwencją odwrotną, tłumaczy się na.
)W rzeczywistości możesz nawet zawrzeć części ciągu w cudzysłowie zamiast całości:
's/Search/Replace/g'
jest taki sam jaks/'Search'/'Replace'/g
is/Search/Replace/g
BASH. Musisz tylko uważać na znaki specjalne (i spacje).Sugeruję użycie tej
-n
opcji, jeśli nie jesteś pewien, że masz poprawne wyrażenia regularne. Pokazuje, co zostanie przemianowane, a następnie wychodzi bez robienia tego. Na przykład:Spowoduje to wyświetlenie wszystkich zmian, które wprowadziłby, gdyby nie umieścić
-n
tam flagi. Jeśli wygląda dobrze, naciśnij, Upaby wrócić, a następnie skasuj-n
i naciśnij Enter(lub zamień na,-v
aby wyświetlić wszystkie wprowadzone zmiany).Uwaga :
rename
Domyślnie wersje Ubuntu powyżej 17.04 nie są dostarczane , jednak nadal są dostępne w repozytoriach. Użyj,sudo apt install rename
aby go zainstalowaćźródło
rename
poleceniu, tak zrobiłem, aby dołączyć:for f in *; do mv -v "$f" "prependThis$f"; done
(?:\.[0-9]{3})$
we wzorcu, aby dopasować wszystkie 3-cyfrowe rozszerzenia plików w grupie pasywnej. Przykład:rename s/^my_favorite_movie.avi(?:\.[0-9]{3})$/random_movie.avi/ *
. Spójrz na ten ściągawka wyrażeń regularnych .Wypróbuj pyrenamer .
Nie jest zintegrowany z nautilus, ale wykonuje zadanie. Oto opinia.
Thunar (część XFCE) ma również nazwę, którą można uruchomić osobno.
źródło
Wydaje się, że na starterze jest projekt o nazwie nautilus-renamer . Możesz go zainstalować, uruchamiając
make install
po pobraniu skryptu i rozpakowaniu go. Wygląda na to, że ma jakieś funkcje lub jeśli znasz jakieś programowanie, możesz po prostu ulepszyć go do swoich potrzeb, ponieważ jest to po prostu skrypt Pythona.źródło
W wierszu polecenia, aby zmienić nazwę pojedynczego pliku, polecenie jest po prostu
Jeśli chcesz to zrobić wsadowo, prawdopodobnie będziesz chciał to zrobić za pomocą skryptu. Jeśli podasz więcej szczegółów, ja lub ktoś inny prawdopodobnie przygotuję jeden dla ciebie. To powiedziawszy, skrypt do dołączania rzeczy do pliku może wyglądać następująco:
W zależności od tego, jak dokładnie potrzebujesz rzeczy, których nazwa zostanie zmieniona, prawdopodobnie zostanie to poprawione, na przykład jeśli masz określone reguły zmiany nazw. (Osobiście zrobiłbym to za pomocą skryptu Perla, ponieważ moje bash-foo nie jest takie świetne, ale to tylko ja.)
Zauważ, że otrzymałem oddzielenie nazwy pliku i rozszerzenia od wcześniej zadanego pytania .
źródło
Jeśli chcesz to zrobić bez wiersza polecenia, podobnie jak w systemie Windows, użyj klawisza strzałki w prawo zamiast klawisza Tab . Spowoduje to wybranie następnego pliku, podobnie jak karta w systemie Windows.
źródło
Niezupełnie to samo pytanie, jak zmienić nazwę wielu plików jednocześnie? ale zasugeruję ten sam program, który zasugerowałem w tej odpowiedzi: qmv .
qmv to przydatne narzędzie z pakietu renameutils. Umożliwia używanie ulubionego edytora tekstu do zmiany nazw plików. W połączeniu z mocą vima masz doskonałe narzędzie do zmiany nazw.
Zwykle wywołuję to jak
qmv -f do
w katalogu, w którym chcę zmienić nazwę kilku plików. Lub jeśli chcę zmienić rekurencyjnie nazwęqmv -R -f do
.Ilekroć muszę zmienić nazwę wielu plików, zawsze wracam do qmv (i vim).
http://www.nongnu.org/renameutils/
źródło
Jeśli jedyną odpowiednią opcją jest ręczna zmiana nazwy plików, doskonałym sposobem na to jest użycie
vidir
(wmoreutils
pakiecie):Przykłady
Selektywna zmiana nazw plików
Zawartość bieżącego katalogu roboczego:
Uruchom
vidir
, zmień nazwy plików w wierszach zawierających nazwy plików, których nazwy chcesz zmienić; naciśnij CTRL+ Oi CTRL+ X:Selektywne przełączanie nazw plików
Zawartość bieżącego katalogu roboczego:
Zawartość plików bieżącego katalogu roboczego:
Uruchom
vidir
, przełącz liczby w wierszach zawierających nazwy plików, które chcesz zmienić; naciśnij CTRL+ Oi CTRL+ X:Selektywne usuwanie plików
Zawartość bieżącego katalogu roboczego:
Uruchom
vidir
, usuń wiersze zawierające pliki, które chcesz usunąć; naciśnij CTRL+ Oi CTRL+ X:źródło
Używam krename. Jest to aplikacja GUI. Może czytać tagi mp3 i tak dalej.
Istnieje jako osobna aplikacja, a także jako część Krusader.
Jest też
rename
skrypt - który jest częścią standardowej instalacji perla (prawdopodobnie masz go zainstalowaną). Sprawdź to za pomocąman rename
.źródło