Komenda Uniksa, aby znaleźć pliki w jednym katalogu, ale nie w innym?


0

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.


Cóż, mogę powiedzieć ls dir1 dir3 dir5. Jeśli nie tego szukasz, wyjaśnij swoje pytanie.
Scott

Odpowiedzi:


1

Zakładam, że chcesz przeprowadzić to wyszukiwanie z katalogu wyższego poziomu. Jeśli tak, możesz użyć -pathopcji 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*'

0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.