Dengan asumsi bahwa "asing" berarti "bukan karakter ASCII", maka Anda dapat menggunakan finddengan pola untuk menemukan semua file yang tidak memiliki karakter ASCII yang dapat dicetak atas namanya:
LC_ALL=C find . -name '*[! -~]*'
(Spasi adalah karakter yang dapat dicetak pertama yang tercantum di http://www.asciitable.com/ , ~adalah yang terakhir.)
Petunjuk untuk LC_ALL=Cdiperlukan (sebenarnya, LC_CTYPE=Cdan LC_COLLATE=C), jika rentang karakter ditafsirkan salah. Lihat juga halaman manual glob(7). Karena LC_ALL=Csebab finduntuk menafsirkan string sebagai ASCII, itu akan mencetak karakter multi-byte (seperti π) sebagai tanda tanya. Untuk memperbaiki ini, pipa ke beberapa program (misalnya cat) atau redirect ke file.
Alih-alih menentukan rentang karakter, [:print:]juga dapat digunakan untuk memilih "karakter yang dapat dicetak". Pastikan untuk mengatur lokal C atau Anda mendapatkan perilaku yang cukup (tampaknya) sewenang-wenang.
Contoh:
$ touch $(printf '\u03c0') "$(printf 'x\ty')"
$ ls -F
dir/ foo foo.c xrestop-0.4/ xrestop-0.4.tar.gz π
$ find -name '*[! -~]*' # this is broken (LC_COLLATE=en_US.UTF-8)
./x?y
./dir
./π
... (a lot more)
./foo.c
$ LC_ALL=C find . -name '*[! -~]*'
./x?y
./??
$ LC_ALL=C find . -name '*[! -~]*' | cat
./x y
./π
$ LC_ALL=C find . -name '*[![:print:]]*' | cat
./x y
./π