Witam.
Tak jak w temacie potrzebuję napisać skrypt który będzie znajdował w określonej lokalizacji i podfolderach pliki które będą miały identyczne nazwy i rozmiary.
to co udało mi się wymyślić i znaleźć w internecie.
#!/bin/bash
fullList=$(find . -type f | awk -F '/' '{print $NF,$0}' | sort +0 -1)
fileNames=$(find . -type f | awk -F '/' '{print $NF}' | sort | uniq -d)
fileSize=$(find . -type f -printf "%p - %s\n" | sort -nr -k3 | uniq -D -f1)
#awk -F '/' '{print $NF,$0}'
for EACH in $fileNames; do
echo "$fullList" | grep -wE "^$EACH "
done
echo "$fileSize"
exit 0
nie wiem jak połączyć sprawdzenie nazw i rozmiarów. Teraz odbywa się to oddzielnie. – Dodane 24.04.2012 (Wt) 13:17 – Może komuś się przyda. Działa.
#!/bin/bash
lista=$(find . -type f | awk -F '/' '{print $NF,$0}' | sort +0 -1) #utworzenie listy wszystkich plików
nazwy=$(find . -type f | awk -F '/' '{print $NF}' | sort | uniq -d) #utworzenie listy z plikami powtarzajacymi się
rozmiary=$(find . -type f -printf "%f %p %s\n" | sort -nr -k3 | uniq -D -f2) #utowrzenie listy z plikami o
#tych samych rozmiarach
#-printf "%p - %s\n"
# find . -type f -printf "%p - %s\n" | sort -nr -k3 | uniq -D -f1 SAME ROZMIAR
# find . -type f -ls | awk '{print $NF,$7}' | sort +0 -1 DO DO LISTY PLIKOW ROZM
# find . -type f -ls | awk '{print $7}' | sort | uniq -d DO POJEDYNCZYCH PLIKOW ROZM
echo "Pliki o indetycznych nazwach:"
for EACH in $nazwy; do #dopasowywanie plikow z jednej listy do drugiej
echo "$lista" | grep -wE "^$EACH "
done
echo ""
echo "Pliki o identycznych nazwach i rozmiarach:"
for EACH in $nazwy; do
echo "$rozmiary" | grep -wE "^$EACH "
done
exit 0