[bash] jak odnaleźć dysk systemowy Windows

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
adamski9000
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 18 lis 2012, 16:05
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

[bash] jak odnaleźć dysk systemowy Windows

Post autor: adamski9000 »

Witam

Chciałbym odnaleźć dysk systemowy Windows. Napisałem poniższy skrypt, ale nie działa wg moich założeń :)
Mianowicie mam w pliku zapisane podmontowane partycje. W pętli for wczytywana jest ścieżka do każdej partycji i komenda find powinna wyszukać określony katalog na danej parycji. Niestety komenda find zwraca pusty wynik.
Bez pętli, komenda find zwraca poprawny wynik.

Kod: Zaznacz cały

for PARTYCJA in `cat partycje.txt`
do
      find /media/${PARTYCJA}/ -maxdepth 1 -type d -name "Users" -print > partycja_windows.txt
done
Proszę o jakieś sugestie co do rozwiązania zagadki. A może jest jakiś inny prostszy sposób wykrycia dysku systemowego windows ?

pozdrawiam
Lenovo G580, Ubuntu 14.04, Detektyw Komputerowy dla Windows - OPEN SOURCE
Rgl
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 227
Rejestracja: 08 sty 2006, 08:10
Płeć: Mężczyzna
Wersja Ubuntu: 24.10
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Warszawa

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: Rgl »

Strzelam: zamień > na >>
Mały 1
Zakręcona Traszka
Zakręcona Traszka
Posty: 548
Rejestracja: 24 sty 2008, 15:55
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE
Architektura: x86_64

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: Mały 1 »

Pokaż jeszcze zawartość "cat partycje.txt".
Awatar użytkownika
adamski9000
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 18 lis 2012, 16:05
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: adamski9000 »

plik partycje.txt:

dba1
dba2
dba3
Lenovo G580, Ubuntu 14.04, Detektyw Komputerowy dla Windows - OPEN SOURCE
Mały 1
Zakręcona Traszka
Zakręcona Traszka
Posty: 548
Rejestracja: 24 sty 2008, 15:55
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE
Architektura: x86_64

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: Mały 1 »

Twój skrypt nie może działać bo zrobiłeś w nim kilka błędów. Pamiętaj, że jeżeli chcesz wyszukać dowolny plik na dysku, to ten dysk musi być wcześniej zamontowany.

Utwórz plik ze ścieżkami do partycji i nazwij go np. „dyski”.
Do tego pliku wklei ścieżki do swoich dysków np.:

Kod: Zaznacz cały

/media/9E7C0BAC8C0B87DD1
/media/hd.Model
Tutaj masz polecenie, które wyszuka katalog o nazwie "Users" i zapisze go do pliku „partycja_windows.txt”.

Kod: Zaznacz cały

awk '{system("find  "$0" -type d -name \"Users\" >> partycja_windows.txt")}' dyski
Powyższe polecenie możesz uruchomić bezpośrednio w konsoli lub zapisać je w skrypcie . Polecenia nie musisz umieszczać w pętli, ponieważ awk czyta koleje linie z pliku (tz. ścieżki).
Awatar użytkownika
adamski9000
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 18 lis 2012, 16:05
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: adamski9000 »

Dzięki za pomoc. Sugestia Rql była słuszna. Dodałem >> i zadziałało. Choć nie wiem dlaczego ! I strasznie mnie to denerwuje.
Rozwiązanie z AWK od Mały 1 też działa, ale tylko przy potoku >>. Z potokiem > nie działa jak należy. Tworzy plik, ale pusty. Ciekaw jestem przyczyny takiego stanu rzeczy.

Dzięĸi
Lenovo G580, Ubuntu 14.04, Detektyw Komputerowy dla Windows - OPEN SOURCE
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: beluosus »

W Twoim skrypcie każdy wyraz (nie linia) jest odczytywana osobno, za każdym razem więc wykonywany jest dany operator:

Kod: Zaznacz cały

 >  nadpisuje plik
>>  dopisuje na koniec pliku
Poza tym w bashu pliki linia po linii przetwarza się tak: viewtopic.php?f=170&t=147035
tloszabno
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 19 sie 2006, 13:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64
Kontakt:

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: tloszabno »

Czy nie prościej do takiego czegoś użyć pythona ?
Rgl
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 227
Rejestracja: 08 sty 2006, 08:10
Płeć: Mężczyzna
Wersja Ubuntu: 24.10
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Warszawa

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: Rgl »

tloszabno pisze:Czy nie prościej do takiego czegoś użyć pythona ?
Prościej?
Dla niektórych prościej może być użyć C lub pascala :)
Do wyszukania jednego katalogu uczyć się języka programowania?
Awatar użytkownika
adamski9000
Sędziwy Jeż
Sędziwy Jeż
Posty: 59
Rejestracja: 18 lis 2012, 16:05
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: adamski9000 »

Proszę o przykład, stwierdzimy czy prościej
Lenovo G580, Ubuntu 14.04, Detektyw Komputerowy dla Windows - OPEN SOURCE
tloszabno
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 19 sie 2006, 13:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64
Kontakt:

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: tloszabno »

Kod: Zaznacz cały

#! /usr/bin/env python
#-*- coding: utf-8  -*
from os import listdir
from os.path import isdir, join

out_file_name = "pliczek.txt"
#Folder charakterystyczny dla dysku z winda
win_folder = "/Windows/System32"

devs = listdir( "/media"  )
for dev in devs:
	if isdir(join("/media/", dev, win_folder)):
		f = file(out_file_name, "w")
		f.write(join("/media",dev) + "\n")
		f.close()
		break
Ostatnio zmieniony 05 sty 2013, 12:27 przez tloszabno, łącznie zmieniany 2 razy.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: ethanak »

po co dwa joiny? wystarczy jeden z trzema parametrami.
tloszabno
Piegowaty Guziec
Piegowaty Guziec
Posty: 24
Rejestracja: 19 sie 2006, 13:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64
Kontakt:

Re: [bash] jak odnaleźć dysk systemowy Windows

Post autor: tloszabno »

racja , poprawione już
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości