Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Polskie forum (Polish) Polish OTW
  • Search

[BASH] Skrypt do zmiany nazw wielu plików

Rozmowy nie związane ściśle z Gentoo

Moderator: SlashBeast

Post Reply
  • Print view
Advanced search
12 posts • Page 1 of 1
Author
Message
Garrappachc
Guru
Guru
User avatar
Posts: 362
Joined: Fri Dec 26, 2008 9:13 pm
Location: Kraków
Contact:
Contact Garrappachc
Website

[BASH] Skrypt do zmiany nazw wielu plików

  • Quote

Post by Garrappachc » Wed Oct 28, 2009 11:49 am

Witam.

Na dysku mam katalog z tapetami. Gdzieś tak koło 500-600 tapet. Mają one różne nazwy (ściągane są z internetu, więc sami rozumiecie, nazwy są czasami bardzo dziwne). Teraz chciałbym żeby zmienić nazwę każdego pliku, aby po pierwsze miał kolejną liczbę, a po drugie nie miał rozszerzenia - bo skoro mam linuksa, to co dla mnie znaczy różnica miedzy jpg a png? Czyli zamiast nazw xxxxx.jpg, yyyyy.png, były nazwy 1, 2, etc. I robiłem już parę skryptów w bashu do zmiany nazw kilku plików, ale te miałem zdefiniowane. I tu moje pytanie. Jak wczytać listę plików w danym katalogu do tablicy w bashu? Bo potem już z górki. Proszę o pomoc.
De profundis clamavi ad Te, Domine

emerge --info | virtual aviation
Top
znal
Apprentice
Apprentice
Posts: 190
Joined: Thu Jul 12, 2007 5:27 pm

  • Quote

Post by znal » Wed Oct 28, 2009 2:24 pm

Można zrobić np. tak:

Code: Select all

let i=0
find . -type f -printf "%f\n" | (while read plik
do
        mv $plik $i
        let i++
done)
Top
Garrappachc
Guru
Guru
User avatar
Posts: 362
Joined: Fri Dec 26, 2008 9:13 pm
Location: Kraków
Contact:
Contact Garrappachc
Website

  • Quote

Post by Garrappachc » Wed Oct 28, 2009 6:17 pm

Hm... Dzięki. Właśnie rozwaliłeś mi połowę systemu ^^

Sam to rozwiązałem skryptem, którego teraz nie pokażę, gdyż nie odpala mi się żaden menedżer plików (nawet konsola). Problem mam z plikami, które mają spację w nazwie - polecenie ls, którym się wspomogłem przy tworzeniu tabeli nie uzupełnia ich blackslashem... Apostrofy nic tu nie dają.
De profundis clamavi ad Te, Domine

emerge --info | virtual aviation
Top
soban_
l33t
l33t
User avatar
Posts: 668
Joined: Wed Aug 27, 2008 1:30 pm
Location: /home/soban
Contact:
Contact soban_
Website

  • Quote

Post by soban_ » Wed Oct 28, 2009 6:18 pm

Garrappachc wrote:Hm... Dzięki. Właśnie rozwaliłeś mi połowę systemu ^^

Sam to rozwiązałem skryptem, którego teraz nie pokażę, gdyż nie odpala mi się żaden menedżer plików (nawet konsola). Problem mam z plikami, które mają spację w nazwie - polecenie ls, którym się wspomogłem przy tworzeniu tabeli nie uzupełnia ich blackslashem... Apostrofy nic tu nie dają.
Proponuje backup przywrocic jesli takowy masz - bo chyba to jakas grubsza sprawa jest.
gg: 525600
Top
Garrappachc
Guru
Guru
User avatar
Posts: 362
Joined: Fri Dec 26, 2008 9:13 pm
Location: Kraków
Contact:
Contact Garrappachc
Website

  • Quote

Post by Garrappachc » Wed Oct 28, 2009 6:20 pm

Nie mam... Kurczę. żadna aplikacja mi się nie otwiera. Dobrze, że zostawiłem sobie otwartą konsolę i przeglądarkę. Kiedy odpalam cokolwiek, wywala mi (obojętnie czy z roota czy ze zwykłego usera):

Code: Select all

[root][garrappachc] # thunar
No protocol specified
Thunar: Nie można otworzyć ekranu: 
[root][garrappachc] # chromium
No protocol specified

(chrome:17983): Gtk-WARNING **: cannot open display: :0.0
[root][garrappachc] # 
Boję się zrestartować system... Emege thunar też nie pomogło...
De profundis clamavi ad Te, Domine

emerge --info | virtual aviation
Top
SlashBeast
Retired Dev
Retired Dev
User avatar
Posts: 2922
Joined: Tue May 23, 2006 11:50 am
Contact:
Contact SlashBeast
Website

  • Quote

Post by SlashBeast » Wed Oct 28, 2009 6:27 pm

chyba nie odpaliles tego skryptu w katalogu domowym? Oczywiscie w jakims podkatalogu to robiles? Stawiam na 'brak' .Xauthority czyli po... rename jest.
Top
Garrappachc
Guru
Guru
User avatar
Posts: 362
Joined: Fri Dec 26, 2008 9:13 pm
Location: Kraków
Contact:
Contact Garrappachc
Website

  • Quote

Post by Garrappachc » Wed Oct 28, 2009 6:31 pm

Niee... Odpaliłem to w katalogu ~/Obrazy/Tapety. Właśnie zauważyłem, że pozmieniało mi nazwy plików w katalogu głównym. Jakieś cyfry... A co otwieram to jakiś .conkyrc, .Xdefaults... A w podkatalogach nic nie pozmieniało. Podeślijwa mi swój .Xauthority, żebym miał do czego porównać. Proszę.

EDIT: Udało się, przywróciłem .Xauthority, wsio wróciło do normy (tylko configi mam pod innymi nazwami, ale to się będzie systematycznie uzupełniało). Wracając do sedna problemu - jak zrobić ten skrypcik?
De profundis clamavi ad Te, Domine

emerge --info | virtual aviation
Top
znal
Apprentice
Apprentice
Posts: 190
Joined: Thu Jul 12, 2007 5:27 pm

  • Quote

Post by znal » Wed Oct 28, 2009 10:01 pm

Dziwne, u mnie działa prawidłowo, przesuwa pliki tylko w bieżącym katalogu:

Code: Select all

znal@znal ~/test $ ls
znal@znal ~/test $ touch a b c d e
znal@znal ~/test $ let i=0
znal@znal ~/test $ find . -type f -printf "%f\n" | (while read plik
> do
>         mv $plik $i
>         let i++
> done)
znal@znal ~/test $ ls
0  1  2  3  4
znal@znal ~/test $ ls /
bin   dev  home  lost+found  opt   root  sys  usr
boot  etc  lib   mnt         proc  sbin  tmp  var
EDIT: Chyba wiem, co mogło być przyczyną. Jeśli w nazwach plików były np. spacje, to rzeczywiście wtedy nie działa prawidłowo i trzeba umieścić $plik w cudzysłowach "$plik"
Sorki za problem :oops:
Top
soban_
l33t
l33t
User avatar
Posts: 668
Joined: Wed Aug 27, 2008 1:30 pm
Location: /home/soban
Contact:
Contact soban_
Website

  • Quote

Post by soban_ » Wed Oct 28, 2009 10:12 pm

Garrappachc wrote:Niee... Odpaliłem to w katalogu ~/Obrazy/Tapety. Właśnie zauważyłem, że pozmieniało mi nazwy plików w katalogu głównym. Jakieś cyfry... A co otwieram to jakiś .conkyrc, .Xdefaults... A w podkatalogach nic nie pozmieniało. Podeślijwa mi swój .Xauthority, żebym miał do czego porównać. Proszę.

EDIT: Udało się, przywróciłem .Xauthority, wsio wróciło do normy (tylko configi mam pod innymi nazwami, ale to się będzie systematycznie uzupełniało). Wracając do sedna problemu - jak zrobić ten skrypcik?
Moze zrob na przyszlosc backupa, zebys nie musial znowu przechodzic nerwowego utrzymywania linuxa przy zyciu bo po reboocie moze byc problem :-)
gg: 525600
Top
Garrappachc
Guru
Guru
User avatar
Posts: 362
Joined: Fri Dec 26, 2008 9:13 pm
Location: Kraków
Contact:
Contact Garrappachc
Website

  • Quote

Post by Garrappachc » Wed Oct 28, 2009 10:48 pm

Ja tam się nie denerwuję, bo nie bawię się w "pierdółki" na co dzień. Zresztą, mam blisko 90 GB danych...

Mój skrypcik wygląda tak:

Code: Select all

#!/bin/bash
tablica=(`ls /home/garrappachc/Obrazy/Tapety/`)
ilosc=${#tablica[@]}
for (( i=1; $i<=$ilosc; i++ )) ; do
	mv "/home/garrappachc/Obrazy/Tapety/${tablica[$i]}" "/home/garrappachc/Obrazy/Tapety/$i" && echo ${tablica[$i]}
done
I jak teraz zrobić, by się nie wkurzał o pliki, w których jest spacja?
De profundis clamavi ad Te, Domine

emerge --info | virtual aviation
Top
SlashBeast
Retired Dev
Retired Dev
User avatar
Posts: 2922
Joined: Tue May 23, 2006 11:50 am
Contact:
Contact SlashBeast
Website

  • Quote

Post by SlashBeast » Wed Oct 28, 2009 11:59 pm

Najlepiej nie miec spacji w plikach, to tylko proszenie sie o problemy. Jest taka sprytna aplikacja w portage, detox sie nazywa.
Top
BeteNoire
Veteran
Veteran
Posts: 1827
Joined: Sun Sep 25, 2005 11:59 pm

  • Quote

Post by BeteNoire » Thu Oct 29, 2009 5:07 am

Ja bym to rozwiązał przy pomocy Krename i nie byłoby żadnych problemów.
Jeśli KDE za bardzo ciąży to jest lżejszy program - GPrename : http://pastebin.com/d5e81aabe
powered by power plant
Top
Post Reply
  • Print view

12 posts • Page 1 of 1

Return to “Polish OTW”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic