Linux - skrypt zapisujący strukturę hierarchii plików w danej lokalizacji.

Linux - skrypt zapisujący strukturę hierarchii plików w danej lokalizacji.

Dodano: 2010-11-12

Odtworzenie struktury plików i folderów znajdujących się w danej lokalizacji i zapisanie ich hierarchii w pliku jest często pomocne, a wręcz niezbędne. Do czego coś takiego może służyć (na pewno lepszemu zrozumienia języka skryptowego ;) do wykonania porównania struktury plików w pewnych okresach czasowych.

Nie wszystkie programy umożliwiają przeglądanie rekurencyjne źródła (tzn. folderów w nim znajdujących się), a co za tym idzie wykonania operacji na poszczególnych plikach. W takich przypadkach dobrze jest uruchamiać taki program za każdym razem z podaniem bezwzględnej lub też względnej ścieżki do celu - tutaj właśnie przychodzi z pomocą skrypt poniżej, który odpowiednio zmodyfikowany ułatwi to zadanie.

Skrypt zawiera dodatkowy parametr jakim jest ilość danych zawartych w plikach, waga podana jest w bajtach.

Drukuj Zaznacz kod
#!/bin/bash

echo "Przetwarzany folder: $1"
echo "$2"

if [ -f struct_file.txt -a "$2" != "no" ];
then
	rm struct_file.txt;
fi


ls -la $1 | awk 'BEGIN{ }{
	if (($8 != ".") && ($8 != "..") && ($8 != "")){
		print $0;
		if ($1  ~ /^d/){
			print "folder: "$8;
			system("echo '$1/'"$8"/ >> struct_file.txt");
			system("'$0' '$1/'"$8" no");
		} else {
			print "plik: "$8;
			system("echo '$1/'"$8" ["$5" bytes] >> struct_file.txt");
		}
	} 
} END {}'