O que você parece estar pedindo é um comando que encontre arquivos cujo nome seja o mesmo do diretório pai.
Você pode fazer isso usando o GNU find
, com uma correspondência de expressão regular que usa uma referência anterior ao componente de caminho anterior, por exemplo,
find path/to/somedir -regextype egrep -regex '.*/([^/]*)/$'
Se você deseja encontrar especificamente arquivos que correspondam ao pai (excluindo diretórios ), você pode adicionar -type f
à lista de predicados (ou se quiser para somente encontrar subdiretórios, use -type d
).
Para ilustrar, dado
$ tree
.
├── bar
│ ├── file1
│ ├── file2
│ └── file3
├── baz
│ ├── baz
│ ├── file1
│ ├── file2
│ └── file3
└── foo
├── file1
├── file2
└── file3
3 directories, 10 files
então
$ find . -regextype egrep -regex '.*/([^/]*)/$'
./baz/baz
Se quiser imprimir apenas o nome (em vez do caminho completo), você pode usar um -printf
find . -regextype egrep -regex '.*/([^/]*)/$' -printf '%f\n'