Nowe posty

Autor Wątek: Kopiowanie z macierzystego katalogu  (Przeczytany 5158 razy)

Mnemonic

  • Gość
Kopiowanie z macierzystego katalogu
« dnia: 2008-12-03, 21:29:34 »
Cześć, znalazłem sobie trochę zadań do basha i kombinuje. A że jestem początkujący to oczywiście mam problem.
1.W jednym zadaniu mam taki podpunkt: Przejdź do katalogu abc/xyz i skopiuj do niego wszystkie pliki kończące się na .txt z katalogu macierzystego.
2. Mam też coś takiego: Napisz polecenie, które wypisze same rozmiary plików w bieżącym katalogu.

Jeśli chodzi o pierwsze to nie bardzo wiem jak mam czegoś szukać w katalogu nadrzędnym i z niego na dodatek skopiować. Próbuje coś takiego:  
cp -P $(find  *.txt) ./xyz
Ale pewnie wyszukuje w ten sposób tylko pliki w bieżącym katalogu. Tak w ogóle to nie wiem nawet czy ten parametr -P jest tu odpowiedni i jak go użyć....

A jeśli chodzi o to drugie to czytałem trochę w manualu i najlepsze są chyba te: test -f, ls -s, du ale nic nie umie z tego złożyć, nie wiem jak to napisać.

brograf

  • Gość
Kopiowanie z macierzystego katalogu
« Odpowiedź #1 dnia: 2008-12-03, 21:50:09 »
1. cp ../../*.txt ./
2. do wyświetlania rozmiaru pliku można użyć polecenie ls lub du (jakie parametru użyć powie man :)

Mnemonic

  • Gość
Kopiowanie z macierzystego katalogu
« Odpowiedź #2 dnia: 2008-12-03, 22:23:32 »
Wow, świetny pomysł na to pierwsze zadanie, a ja tak kombinowałem...
Odnośnie tego drugiego doszedłem do czegoś takiego: ls -Fsh | grep *$  
Idealnie nie jest bo wyświetla gwiazdkę na końcu nazwy każdego pliku, no ale na początek niech będzie :)
Dzięki za pomoc.

brograf

  • Gość
Kopiowanie z macierzystego katalogu
« Odpowiedź #3 dnia: 2008-12-04, 02:20:44 »
polecenie "ls -Fsh | grep *$  " nie zadziała Ci wszędzie :/ nie każdy ls wyświetla * na koniec nazwy wykonywalnego pliku (zależy od konfiguracji LS_OPTIONS). Można natomiast wykorzystać obecność / po nazwie katalogu :) Na wszelki wypadek zobacz na parametr -p w lsie.

ls -Fsh | grep -v "/$"

xavery

  • Gość
Kopiowanie z macierzystego katalogu
« Odpowiedź #4 dnia: 2008-12-04, 11:34:56 »
Cytat: brograf
ls -Fsh | grep -v "/$"
"Użycie ls w skrypcie prawie zawsze na pewno jest błędem". To stara prawda i warto się jej trzymać:)
Polecam stat -c %s plik

Mnemonic

  • Gość
Kopiowanie z macierzystego katalogu
« Odpowiedź #5 dnia: 2008-12-04, 12:54:21 »
No i super. Dzięki.

brograf

  • Gość
Kopiowanie z macierzystego katalogu
« Odpowiedź #6 dnia: 2008-12-04, 22:28:30 »
Cytat: xavery
"Użycie ls w skrypcie prawie zawsze na pewno jest błędem"
A masz może jakieś przykłady na potwierdzenie tej tezy? Nie za bardzo rozumiem czemu miało by tak być.