![]() |
Zmiana znaków w nazwach filderów i plików - Wersja do druku +- Forum Linux Mint Polska (https://forum.linuxmint.pl) +-- Dział: Wsparcie (https://forum.linuxmint.pl/forumdisplay.php?fid=203) +--- Dział: Inne edycje (https://forum.linuxmint.pl/forumdisplay.php?fid=126) +--- Wątek: Zmiana znaków w nazwach filderów i plików (/showthread.php?tid=2109) |
Zmiana znaków w nazwach filderów i plików - Valmai - 17-07-2022 Cześć Wszystkim! Postanowiłem zrobił poprawę w plikach i zmienić znak biały spacja " " na "_". Skorzystałem z kodu na StackOverFlow a dokładnie tego: Kod: find . -name "* *" -type d | rename 's/ /_/g' # do the directories first A druga dla File 'f' Efektem jest tego, że zmieniły mi się nazwy z np "folder 123" na "folder_123" Tak samo z plikami, z "plik test.txt" na "plik_test.txt" Super! Oto mi chodziło. Problem zaczął się wtedy jak chciałem zmienić nazwy FOLDERÓW z kropkami "." na "_" Czyli chciałem uzyskać z "folder.123" na "folder_123" Tak więc lekkomyślnie przebudowałem kod na: Kod: find . -name "*.*" -type d | rename 's/./_/g' Dzięki czemu w efekcie uzyskałem nazwy folderów z "folder.123" na "__________" Proszę o każcie mi pokazywać screenów jak to wygląda ![]() Dzięki tej akcji mam pytania: 1. Czego nie wiem - kropka ma jakieś super moce w zmienianiu nazw? jest czymś na kształt "*"? 2. Jakby wyglądał kod żebym mógł dokonać pożądanej zmiany? Dzięki z góry za odpowiedź. ![]() RE: Zmiana znaków w nazwach filderów i plików - magnus - 19-07-2022 Polecenie find drukuje ścieżkę pliku co powoduje problem. Parametr -exec basename {} ';' ograniczy wydruk tylko do nazwy. W poleceniu find dla katalogów parametr ! \( -path . \) spowoduje że nie będzie pokazywany katalogu główny .. W poleceniu rename kropka musi być zmodyfikowana odwrotnym ukośnikiem \. żeby utraciła swoje specjalne znaczenie. Kod: find -name "*.*" -type d ! \( -path . \) -exec basename {} ';' | rename 's/\./_/g' Kod: find -name "*.*" -type f -exec basename {} ';' | rename 's/\./_/g' |