Co to jest polecenie unix, aby znaleźć pliki, które znajdują się w jednym bezpośrednio, a nie kupuj w innym katalogu? Dbam tylko o nazwy plików.
Dzięki.
Co to jest polecenie unix, aby znaleźć pliki, które znajdują się w jednym bezpośrednio, a nie kupuj w innym katalogu? Dbam tylko o nazwy plików.
Dzięki.
Odpowiedzi:
Zakładam, że chcesz przeprowadzić to wyszukiwanie z katalogu wyższego poziomu. Jeśli tak, możesz użyć -path
opcji z find
.
Na przykład, biorąc pod uwagę poniższą strukturę katalogów
+---dir1/test1.txt
|
|--dir2/test1.txt
znaleźć pliki pasujące do „test *” w katalogu d1
find -path '*dir1*' -iname 'test*'
Aby porównać dwa katalogi, możesz użyć tego:
diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort)
Aby to zrobić tylko w jeden sposób i utworzyć listę plików, spróbuj tego:
diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort) \
| grep '< ./' | sed "s,< ./,$dir1/,"
Aby to działało poprawnie, ani $ dir1, ani $ dir2 nie powinny zawierać ukośnika końcowego.
ls dir1 dir3 dir5
. Jeśli nie tego szukasz, wyjaśnij swoje pytanie.