2010-08-17 10 views
5

Mam folder zawierający pliki .tcb i .tch. Muszę wiedzieć, jaki jest rozmiar wszystkich plików .tcb, odpowiednio wszystkich plików .tch. zrobiłem tak:Oblicz całkowite zużycie przestrzeni określonych plików na terminalu unixowym

1) utworzonego folderu temp, a następnie:

mv *tch temp 

2), a następnie:

du -sk temp 

znalazłem polecenie w Internecie i wikipedia mówi, że to : "du (w skrócie z użycia dysku) to standardowy program Unix używany do oszacowania wykorzystania przestrzeni plików". Myślę, że powodem, dla którego mówi się, że jest to oszacowanie, jest to, że jeśli istnieją linki, to zamiast linku zostanie wyświetlony rozmiar linku.

Ale jeśli to zrobię

ls -l 

w folderze temp (który zawiera wszystkie * .tch) plików, a następnie zsumować rozmiary, które są wyświetlane na terminalu, mam inny rozmiar pliku. Dlaczego tak jest?

No w sumie, co potrzebne jest komenda który pokazuje mi prawdziwy rozmiar pliku * wszystkich .tch plików w folderze, które mogą również zawierać inne typy plików.

Mam nadzieję, że każdy może mi w tym pomóc. Wielkie dzięki!

Odpowiedz

10

Można użyć opcji -L do du jeśli chcesz śledzić dowiązania symboliczne (czyli obliczyć wielkość docelowego łącza, a nie samego linku). Możesz także użyć opcji -c, aby wyświetlić sumę całkowitą na końcu.

Uzbrojeni w te opcje, spróbuj du -skLc *.tch.

Aby uzyskać więcej informacji na temat du, zobacz this manpage.

+1

Należy zauważyć, że może to nie dać oczekiwanego wyniku, jeśli folder zawiera łącze do pliku .tch w tym samym katalogu. Ten plik byłby policzony dwukrotnie: raz dla "rzeczywistego" pliku i raz dla połączonej wersji. – bta

+0

Folder nie zawiera żadnych linków, więc to rozwiązanie wydaje się robić to, co chcę. thx bta – mkn

1

Proszę spojrzeć na konkretną stronę podręcznika dla posiadanej wersji du, ponieważ różnią się one znacznie pod względem ich liczenia.

„Przybliżone” może być spowodowane:

  1. Bloki używane lub Bajty wykorzystywane mogą być zgłaszane z bloków nadmierne rozmiary plików stwierdzając, że nie są dokładnie wielokrotnością rozmiaru bloku, ale bardziej dokładnie oznacza „miejsce, które wykorzystywane Nie mogę użyć do innych rzeczy "Pliki Unix mogą mieć" dziury "stworzone przez szukanie długiej drogi i pisania. System operacyjny nie przydziela miejsca dla pominiętych otworów.
  2. Dowiązania symboliczne mogą, ale nie muszą być dereferencjami do rzeczywistych plików, do których prowadzą.

Jeśli tylko chcesz bytecount używać wc -c *.tcb

Powiązane problemy