Jak zmienić nazwę grupy plików, używając w nazwie ich ścieżki pliku systemu Windows

9

Mam kilka plików z pomieszaną nazwą pliku. Wszystkie nazwy plików mają ten sam początek, który wydaje się być katalogami plików systemu Windows. Problem polega na tym, że jest ponad 700 plików i naprawdę nie chcę przechodzić i ręcznie zmieniać ich nazwy. Oto przykłady nazw plików (uwaga: żaden z nich nie ma katalogów plików):

G:some\really\long\file\path\then\the\name1.jpg
G:some\really\long\file\path\then\the\name2.png
G:some\really\long\file\path\then\the\filename.txt
G:some\really\long\file\path\then\the\file_name.mov
...

Ważne jest to, że każdy plik ma G:some\really\long\file\path\then\the\przed nazwą pliku, którą chciałbym.

Chciałbym więc, aby powyższe pliki wyglądały tak:

name1.jpg
name2.png
filename.txt
file_name.mov

Wypróbowałem renamepolecenie i nie powiodło się. Nadal jestem nowy w Linuksie i naprawdę nie jestem pewien, jak się do tego zabrać, czy naprawdę, co zrobić w Google. Każda pomoc będzie mile widziana.

kingcobra1986
źródło

Odpowiedzi:

18

Właśnie usunąłem wszystko do ostatniego ukośnika za pomocą rename

$ rename -n 's/.*\\//' G*
rename(G:some\really\long\file\path\then\the\file_name.mov, file_name.mov)
rename(G:some\really\long\file\path\then\the\filename.txt, filename.txt)
rename(G:some\really\long\file\path\then\the\name1.jpg, name1.jpg)
rename(G:some\really\long\file\path\then\the\name2.png, name2.png)

Usuń -npo przetestowaniu, aby faktycznie zmienić nazwę plików.

Notatki

  • -n nic nie rób, po prostu wydrukuj to, co zostanie zmienione
  • s/old/newwymienić oldznew
  • .* dowolna liczba dowolnych znaków
  • \\ Pierwszy ukośnik odwrotny to ucieczka przed drugim.
  • Ponieważ wyrażenia regularne są zachłanne, wyrażenie to .*\\zjada także wszystkie poprzednie ukośniki odwrotne.
  • Ponieważ dwa ostatnie ograniczniki //są puste, wszystko pasujące do części wyszukiwania jest usuwane
Zanna
źródło
Czy potrzebuję tylko pierwszego wiersza, czy muszę to zrobić dla każdego pliku?
kingcobra1986,
potrzebujesz tylko pierwszego wiersza @ kingcobra1986, pozostałe to tylko wynik. *dopasowuje wszystkie pliki, ale pozwól mi zmienić to na G*gotowe - teraz dopasowuje wszystkie pliki zaczynające się God bieżącego katalogu i będzie działać na nich wszystkich naraz. Jeśli znajdują się w wielu katalogach, możemy sobie z tym poradzić na różne sposoby
Zanna
To się udało. Czy możesz wyjaśnić, co dokładnie dzieje się w tej linii?
kingcobra1986,
1
@ kingcobra1986 przepraszam, dodałem notatki. Mam nadzieję, że to jasne, jeśli nie, możesz poprosić o więcej!
Zanna
Ha, podoba mi się pomysł wykorzystania .*\\ odtąd chciwego.*
Ziazis
10

Możesz to zrobić w czystej postaci, bashużywając rozszerzenia parametrów powłoki .

${file##*\\}(cut-up-to-last-prefix) usuwa wszystko od początku nazwy pliku do ostatniego \wyświetlenia.

for file in *; do
    mv -v "$file" "${file##*\\}";
done

Wyniki zmiany nazwy to:

‘G:some\\really\\long\\file\\path\\then\\the\\file_name.mov’ -> ‘file_name.mov’
‘G:some\\really\\long\\file\\path\\then\\the\\filename.txt’ -> ‘filename.txt’
‘G:some\\really\\long\\file\\path\\then\\the\\name1.jpg’ -> ‘name1.jpg’
‘G:some\\really\\long\\file\\path\\then\\the\\name2.png’ -> ‘name2.png’
αғsнιη
źródło
6

Jeśli szukasz rozwiązań z interfejsem GUI , istnieje wiele aplikacji do zmiany nazw zbiorczych. Sugerowałbym Thunar , który jest domyślnym menedżerem plików dla Xfce. Jest wyposażony w poręczne narzędzie do zmiany nazwy. Możesz zainstalować Thunar, uruchamiając następujące polecenie w Terminalu:

sudo apt-get install thunar

Prawdopodobnie będziesz mógł również zainstalować z oprogramowania Ubuntu.

Jak korzystać z narzędzia

  1. Po zainstalowaniu Thunar uruchom narzędzie Bulk Rename .
  2. Kliknij ikonę + i dodaj pliki, których nazwę chcesz zmienić.
  3. Kliknij menu rozwijane tuż pod listą wybranych plików i wybierz Wyszukaj i zamień .
  4. W polu Wyszukaj: wpisz G:some\really\long\file\path\then\the\(część, której chcesz się pozbyć), pozostaw pole Zamień na: puste. Podgląd zmian powinien zostać wyświetlony w kolumnie Nowa nazwa .
  5. Aby zastosować zmiany, kliknij przycisk Zmień nazwę plików .

Oprócz funkcji Wyszukaj i zamień to narzędzie obsługuje następujące działania:

  • Wstaw datę / godzinę
  • Wstaw / Zastąp
  • Numeracja
  • Usuń postacie
  • Wielkie / małe litery
pomsky
źródło
czy nie ma takiego nautilusa (chyba tak!)? Wydaje się, że przesada sugeruje zainstalowanie nowej przeglądarki plików w tym celu.
Zanna
@Zanna Jest jeden w wersji 3.22, ale myślę, że wciąż nie jest dostępny w repozytoriach Ubuntu.
pomsky
2
Thunar jest bardzo przydatny i wydaje się, że dobrze współistnieje z innymi przeglądarkami plików, więc myślę, że warto go zainstalować w tym celu. Ale czy możesz rozszerzyć tę odpowiedź, wyjaśniając, jak przeprowadzić masową zmianę nazwy w Thunar?
Eliah Kagan
1
@EliahKagan i jest też lekki
pomsky
Świetnie zrobione, teraz mogę głosować (mam Xubuntu, w którym też mogę to przetestować :))
Zanna